如何在 UIScrollView 中仅禁用垂直滚动?

Posted

技术标签:

【中文标题】如何在 UIScrollView 中仅禁用垂直滚动?【英文标题】:How to disable just vertical scrolling in a UIScrollView? 【发布时间】:2011-09-23 21:47:19 【问题描述】:

UIScrollView 有一个属性 scrollEnabled 可以禁用所有滚动,但我只想禁用垂直滚动。

这可能吗?谢谢。

【问题讨论】:

这回答了你的问题吗? 【参考方案1】:

如果 scrollView 的 contentSize.height 小于它的 bounds.size.height 它不会垂直滚动。

尝试设置:

scrollView.contentSize = (CGSize)<yourContentWidth>, 1.0


斯威夫特

scrollView.contentSize = CGSize(width: <yourContentWidth>, height: 1.0)

【讨论】:

优秀的答案。出于某种原因,0 不起作用,但 1 可以解决问题。任何更大的东西,滚动视图允许最小的垂直滚动。【参考方案2】:
- (void)scrollViewDidScroll:(UIScrollView *)aScrollView

    [aScrollView setContentOffset: CGPointMake(aScrollView.contentOffset.x,0)];


你一定已经确认UIScrollViewDelegate

aScrollView.delegate = self;

【讨论】:

这是一个很好的解决方案,对我有用。这是 swift 3 版本:func scrollViewDidScroll(_ scrollView: UIScrollView) scrollView.contentOffset = CGPoint(x: scrollView.contentOffset.x, y: 0)

以上是关于如何在 UIScrollView 中仅禁用垂直滚动?的主要内容,如果未能解决你的问题,请参考以下文章

如何禁用垂直滚动 UIScrollView?

快速禁用 UIScrollView 中的垂直滚动?

在 UIScrollView Swift 中禁用垂直滚动

使用 NavigationBar 禁用 UIScrollView 垂直滚动

UIScrollView 仅在底部禁用垂直反弹

向下滑动关闭垂直滚动视图