禁用UIScrollView的水平滚动的最佳方法是什么?

Hir*_*ati 4 objective-c uiscrollview horizontal-scrolling contentsize

在中UIScrollView,我的内容高度和宽度大于scrollview的大小。所以基本上它可以水平和垂直滚动。我想要的是仅垂直滚动,并且UIButton通过使用以下代码来管理水平滚动。

 [scrlViewQuestion setContentOffset:CGPointMake(questionWidth, 0) animated:YES];
Run Code Online (Sandbox Code Playgroud)

防止水平滚动视图,可以仅将滚动视图内容宽度设置为小于滚动视图大小,但是在我的情况下,滚动视图内容宽度大于其大小?那么解决此问题的最佳方法是什么?

Man*_*thK 5

例如,内容UIView的宽度应等于UIScrollView的超级视图的宽度,而不应等于UIScrollView本身。

在此处输入图片说明


msc*_*idt 0

将滚动视图的宽度设置contentSize为屏幕的宽度和可滚动内容的实际高度。将、和的设为contentInset零。对于插入的内容,始终选择当前要显示的位置的负坐标。topbottomrightleftx

例如,如果您的屏幕宽度为 320 点,并且您希望显示水平滚动固定为 的内容x,但允许垂直滚动:

CGFloat screenWidth = 320.0;
CGSize actualContentSize = CGSizeMake(3000, 3000);

[scrlViewQuestion setContentSize:CGSizeMake(screenWidth, actualContentSize.height)];
[scrlViewQuestion setContentInset:UIEdgeInsetsMake(0, -x, 0, 0)];
Run Code Online (Sandbox Code Playgroud)