在我的滚动视图上显示视图

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在我的滚动视图上显示视图相关的知识,希望对你有一定的参考价值。

我想在scrollview中添加三个视图。这些观点必须像Snapchat一样彼此相邻。但是,当我在另一个大小的设备上启动我的应用程序时,视图不适应。有人知道我该如何解决这个问题?

let storyboard = UIStoryboard(name: "Main", bundle: Bundle.main)
let MainEuroView = storyboard.instantiateViewController(withIdentifier: "MainViewController") as! MainViewController
let TicketEuroView = storyboard.instantiateViewController(withIdentifier: "TicketViewController") as! TicketViewController
let ProfilView = storyboard.instantiateViewController(withIdentifier: "ProfilViewController") as! ProfilViewController

var TicketViewFrame : CGRect = TicketView.view.frame
TicketViewFrame.origin.x = 0
TicketView.view.frame.size = CGSize(width: self.view.frame.width, height: self.view.frame.size.height)
TicketView.view.frame = TicketViewFrame

var MainViewFrame : CGRect = MainView.view.frame
MainViewFrame.origin.x = self.view.frame.width
MainView.view.frame = MainViewFrame

var ProfilViewFrame : CGRect = ProfilView.view.frame
ProfilViewFrame.origin.x = 2 * self.view.frame.width
ProfilView.view.frame = ProfilViewFrame

self.addChildViewController(TicketView)
self.main_Scroll_View.addSubview(TicketView.view)
TicketView.didMove(toParentViewController: self)

self.addChildViewController(MainView)
self.main_Scroll_View.addSubview(MainView.view)
MainView.didMove(toParentViewController: self)

self.addChildViewController(ProfilView)
self.main_Scroll_View.addSubview(ProfilView.view)
ProfilView.didMove(toParentViewController: self)

self.main_Scroll_View.contentSize = CGSize(width: self.view.frame.width * 3, height: self.view.frame.size.height)
答案

快速解决方法是将帧调整移动到viewDidLayoutSubviews方法,您通常在viewDidLoad期间没有视图帧,而是在故事板中获取视图的帧,例如

override func viewDidLayoutSubviews() {
    super.viewDidLayoutSubviews()

    var TicketViewFrame : CGRect = TicketView.view.frame
    TicketViewFrame.origin.x = 0
    TicketView.view.frame.size = CGSize(width: self.view.frame.width, height: self.view.frame.size.height)
    TicketView.view.frame = TicketViewFrame

    var MainViewFrame : CGRect = MainView.view.frame
    MainViewFrame.origin.x = self.view.frame.width
    MainView.view.frame = MainViewFrame

    var ProfilViewFrame : CGRect = ProfilView.view.frame
    ProfilViewFrame.origin.x = 2 * self.view.frame.width
    ProfilView.view.frame = ProfilViewFrame
}

更好的解决方法是实现autolayout,它会自动为您执行此操作。

以上是关于在我的滚动视图上显示视图的主要内容,如果未能解决你的问题,请参考以下文章

在我的 android 应用程序中滚动列表视图时,数据正在消失。我在片段中使用列表视图

在我的滚动视图上显示视图

如何在滚动列表视图上显示/隐藏底部导航视图?

Android从地图片段底部拖动回收器视图

为啥我的视频没有显示在我使用 AVPlayer 的滚动视图的单元格中

如何在整个屏幕上滚动表格视图