(不要将此问题标记为重复。我阅读了很多问题,但我找不到问题的答案。)
我的问题如下:我有一个UIScrollView
,它只能水平滚动。在这里它垂直滚动20px(奇怪的是:它看起来与状态栏的高度相同)。
我尝试打印UIScrollView
的内容大小,y偏移量和高度,如下所示:
print(horizontalScrollView.contentSize)
print(horizontalScrollView.bounds.size.height)
print(horizontalScrollView.contentOffset.y)
我明白了:
(1125.0, 667.0). // scrollview content size
667.0. // scrollview height
-20.0 // content offset (y)
我知道scrollView
内容大小高度必须为< = scrollView
高度。正如你所看到的那样。
我使用约束将3 UIViewController
水平堆叠。除了这个问题,它的效果很好。
另一个事实:它在Swift 4和Xcode 9之前有效......我不知道这是否可能是原因。
你有什么想法吗?在此先感谢您的帮助。
答案 0 :(得分:11)
你可以这样做。 Swift 4
self.scrollView.contentSize.height = 1.0 // disable vertical scroll
答案 1 :(得分:5)
内容插件可以自动调整。尝试设置您的滚动视图的行为以不调整它。
if #available(iOS 11, *) {
scrollview.contentInsetAdjustmentBehavior = .never
}
答案 2 :(得分:5)
非常有魅力的解决方案是:
// also don't forget
// YourViewController: UIViewController, UIScrollViewDelegate {
@IBOutlet weak var scrollView: UIScrollView!
override func viewDidLoad() {
super.viewDidLoad()
self.scrollView.delegate = self
}
func scrollViewDidScroll(_ scrollView: UIScrollView) {
if scrollView.contentOffset.y > 0 || scrollView.contentOffset.y < 0 {
scrollView.contentOffset.y = 0
}
}
答案 3 :(得分:1)
只需在scrollViewDidScroll
中设置contentOffset即可if scrollView.contentOffset.y > 0 {
scrollView.contentOffset = CGPoint(x: scrollView.contentOffset.x, y: 0)
}
答案 4 :(得分:0)
快速3和4: 禁用UIScrollView滚动并保持实际的内容偏移量:
scrollView.isScrollEnabled = false
或
scrollView.panGestureRecognizer.isEnabled = false
启用再次滚动:
scrollView.isScrollEnabled = true
或
scrollView.panGestureRecognizer.isEnabled = true
答案 5 :(得分:0)
使用下一个类,根据需要设置b = np.frombuffer(np.array(data[12:12+4], dtype=np.byte), dtype=np.uint32)
print ('endianess:', hex(b[0]))
:
canScroll
答案 6 :(得分:0)
只需添加单行
yourScrollView.bounces = false
并确保您的滚动视图子视图(内容)的高度等于您的滚动视图的高度 然后你就完成了
答案 7 :(得分:0)
迅速
self.scrollView.contentSize.width = 1.0 //禁用垂直滚动
答案 8 :(得分:-1)
Swift 5
scrollView.isScrollEnabled = false