【发布时间】:2016-01-23 23:18:24
【问题描述】:
我正在尝试创建一个具有 3 个启动视图的应用程序,您可以在它们之间滑动。非常喜欢 Snapchat。
我做得很好,但是当我尝试嵌入 3 个视图控制器中的一个时,它会被调整到屏幕的一小部分。
这是我的代码:
override func viewDidLoad() {
super.viewDidLoad()
let accCtrl = AccountViewController()
let feedCtrl = UINavigationController(rootViewController: HomeViewController())
let hashsCtrl = AccountViewController()
self.addChildViewController(hashsCtrl)
self.scrollView!.addSubview(hashsCtrl.view)
hashsCtrl.didMoveToParentViewController(self)
self.addChildViewController(feedCtrl)
self.scrollView!.addSubview(feedCtrl.view)
feedCtrl.didMoveToParentViewController(self)
self.addChildViewController(accCtrl)
self.scrollView!.addSubview(accCtrl.view)
accCtrl.didMoveToParentViewController(self)
accCtrl.view.frame = view.frame
// feedCtrl.view.autoresizesSubviews = false
feedCtrl.view.frame = CGRectMake(view.frame.width, 0, view.frame.width, view.frame.height)
feedCtrl.setNavigationBarHidden(true, animated: false)
feedCtrl.view.setNeedsLayout()
hashsCtrl.view.frame = CGRectMake(view.frame.width * 2, 0, view.frame.width, view.frame.height)
scrollView.contentSize = CGSizeMake(view.frame.width * 3, view.frame.height)
scrollView.pagingEnabled = true
scrollView.showsHorizontalScrollIndicator = false
scrollView.showsVerticalScrollIndicator = false
scrollView.contentOffset = CGPointMake(view.frame.width, 0)
}
我注意到屏幕上视图的最终宽度几乎是 x - 280。如果我将 feedCtrl.view.frame 设置为一个宽度,则结果宽度为 1.0 磅。实际上 - 也就是屏幕宽度 - 导致 40.0 磅的宽度。
我还注意到,如果我取消注释将 feedCtrl.view.autoresizeSubviews 布尔值设置为 false 的行,屏幕上的宽度是正确的,但我无法在视图上进行用户交互。
有什么想法吗?
【问题讨论】:
标签: ios uiscrollview uinavigationcontroller