滚动视图不会水平滚动

时间:2016-05-18 16:48:49

标签: ios iphone swift uiscrollview

我是ios编程的新手,我试图将分段控制器添加到滚动视图,因为seg控制器对于屏幕而言太大而没有滚动视图水平滚动。我不知道为什么它不滚动。我想我错过了一些小事,但我找不到它。什么有帮助!谢谢!

viewDidLoad中的代码:

scrollView.delegate = self
scrollView.showsHorizontalScrollIndicator = true
self.scrollView.alwaysBounceHorizontal = true
self.scrollView.scrollEnabled = true
self.scrollView.addSubview(segControl)
self.scrollView.pagingEnabled = true
self.scrollView.directionalLockEnabled = false
self.scrollView.contentSize.height = segControl.frame.height
self.scrollView.contentSize.width = segControl.frame.width

1 个答案:

答案 0 :(得分:1)

UIScrollView非常容易使用:只要其contentSize大于其自己的frame.size,它就会让您滚动显示其可见区域以外的子视图

可能会检查segControl.frame.widthscrollView.frame.width值:segControl的宽度应该更大,以便滚动滚动视图。

如果scrollView.frame是正确的并且不在屏幕之外的位置,也值得检查:例如scrollView.frame.origin.x + scrollView.frame.width小于屏幕宽度。

查看屏幕截图,scrollView.contentSize.width应该超过320(因为它占据了模拟器屏幕的整个宽度,在您的情况下是iPhone 5 / 5S)。由于您已指定内容宽度输出为216,因此看起来您正在访问错误回调中的帧,这些值在尚未正确设置的值时触发。我可以建议移动

scrollView.contentSize.height = segControl.frame.height
scrollView.contentSize.width = segControl.frame.width

部分归viewWillAppear()而不是viewDidLoad()