你的 scrollView 可以轻微地上下滚动,这通常是由于两个原因:
-
Content Insets: 当你将
scrollView嵌入在UINavigationController中,系统可能会自动为scrollView调整内容的插入(content insets),这样顶部的内容就不会被导航栏遮挡。这些 insets 可能会导致额外的上下滚动空间。 -
Content Size:
scrollView的contentSize如果稍微大于其本身的尺寸,它就会允许滚动。确保内容的高度与scrollView的高度完全匹配。
解决方法:
- 禁用自动调整滚动视图插入:
你可以设置
automaticallyAdjustsScrollViewInsets属性为false来禁用这种行为(在 iOS 11 之前使用)。在 iOS 11 及更高版本中,你应该使用contentInsetAdjustmentBehavior。
override func viewDidLoad() {
super.viewDidLoad()
// For iOS 11 and later
if #available(iOS 11.0, *) {
scrollView.contentInsetAdjustmentBehavior = .never
} else {
// For iOS versions prior to 11
automaticallyAdjustsScrollViewInsets = false
}
// ... Rest of your code
}
- 固定
scrollView的contentSize: 在setupScrollView()方法的末尾,确保设置contentSize的高度与scrollView的高度相同。
scrollView.contentSize = CGSize(width: view.bounds.width * CGFloat(pages.count), height: view.bounds.height)
这样应该能确保 scrollView 不再上下滚动。