【发布时间】:2016-01-12 23:48:47
【问题描述】:
我正在尝试使用 UIScrollView 来显示一系列 UIView。在我的故事板中,我有一个视图控制器,其中包含一个使用 AutoLayout 进行约束的 UIView。
视图控制器(灰色的 UIView)
为了调用 UIScrollView,我使用了以下方法:
func initScrollview() {
self.mainScrollView = UIScrollView(frame: self.mainView.bounds)
self.mainScrollView!.contentSize = CGSizeMake((self.mainView.bounds.width)*CGFloat(3), self.mainView.frame.height)
self.mainScrollView!.backgroundColor = UIColor.greenColor() // For visualization of the UIScrollView
self.mainScrollView!.pagingEnabled = true
self.mainScrollView!.maximumZoomScale = 1.0
self.mainScrollView!.minimumZoomScale = 1.0
self.mainScrollView!.bounces = false
self.mainScrollView!.showsHorizontalScrollIndicator = true;
self.mainScrollView!.showsVerticalScrollIndicator = false;
self.mainScrollView!.delegate = self
for i in 0...3 {
var tempView = SubView(frame: self.mainView.bounds)
pages.insert(tempView, atIndex: i)
self.mainScrollView!.addSubview(pages[i]);
}
self.mainScrollView!.scrollRectToVisible(CGRectMake(mainScrollView!.frame.size.width, 0, mainScrollView!.frame.size.width, mainScrollView!.frame.size.height), animated: false)
}
当我运行我的代码时,UIScrollView 不适合 UIView。相反,它太短太宽。结果如下所示:
灰色的UIView,绿色的UIScrollView
我做错了什么导致 UIScrollView 的大小不正确?
【问题讨论】:
-
你把
initScrollview放在哪里了? -
我在 super.ViewDidLoad() 之后的 viewDidLoad() 中有 initScrollView。我刚刚注意到,如果我在 viewDidLoad() 中打印 mainView 的宽度,我得到 536.0,如果我在 viewDidAppear() 中打印宽度,我得到 311.0。这是预期的吗?这可能是我问题的根源吗?
-
是的。看看我的回答:)
标签: ios swift uiview uiscrollview