在UIScrollView
中,我的内容高度和宽度大于scrollview的大小。所以基本上它可以水平和垂直滚动。我想要的只是垂直滚动,我使用UIButton
使用下面的代码水平滚动。
[scrlViewQuestion setContentOffset:CGPointMake(questionWidth, 0) animated:YES];
防止水平滚动视图,可以设置scrollview内容宽度小于滚动视图大小,但在我的情况下,scrollview内容宽度大于其大小?那么解决这个问题的最佳方法是什么?
答案 0 :(得分:2)
答案 1 :(得分:1)
使用此视图层次结构和这些约束
图像的逐步说明
将ScrollView放置在视图(OuterView)的内部。
将带有内容(InnerView)的视图放置在ScrollView内
将ScrollViews 4侧对齐到OuterViews 4侧
ScrollView.leading = OuterView.leading
ScrollView.trailing = OuterView.trailing
ScrollView.top = OuterView.top
ScrollView.bottom = OuterView.bottom
将InnerViews 4侧面与ScrollViews 4侧面对齐
InnerView.leading = ScrollView.leading
InnerView.trailing = ScrollView.trailing
InnerView.top = ScrollView.top
InnerView.bottom = ScrollView.bottom
设置内部视图的宽度和高度等于外部视图的宽度,不滚动视图的宽度。
InnerView.width = OuterView.width
答案 2 :(得分:0)
将滚动视图的contentSize
设置为屏幕宽度和可滚动内容的实际高度。将contentInset
,top
和bottom
的{{1}}设置为零。对于right
上的内容插入,请始终选择当前要显示的位置的否定left
坐标。
E.g。如果您的屏幕宽度为320磅,并且您希望显示固定为x
的水平滚动内容,但允许垂直滚动:
x
答案 3 :(得分:0)
答案 4 :(得分:0)
快速4.设置代理人
func scrollViewDidScroll(_ scrollView: UIScrollView) {
if scrollView.contentOffset.x != 0 {
scrollView.contentOffset.x = 0
}
}
答案 5 :(得分:0)
SWIFT 5
首先,您应该创建一个委托类或使用LayoutMirroring.enabled: Qt.application.layoutDirection == Qt.RightToLeft
LayoutMirroring.childrenInherit: Qt.application.layoutDirection == Qt.RightToLeft
扩展视图控件,然后,您应该使用UIScrollViewDelegate
func检查内容偏移量并使用该功能禁用它:
这是示例代码:
scrollViewDidScroll(_:)