Objective-C:如何在 UIScrollView 中禁用垂直滚动
Posted
技术标签:
【中文标题】Objective-C:如何在 UIScrollView 中禁用垂直滚动【英文标题】:Objective-C: How to disable verticall scrolling in UIScrollView 【发布时间】:2015-10-10 03:59:53 【问题描述】:我将以编程方式将 UIScrollView 添加到 UIView 中。 我尝试为此使用以下代码,但滚动视图仍未禁用。
-(id)initWithFrame:(CGRect)frame
...
_scrollView = [[UIScrollView alloc] initWithFrame:CGRectZero];
[self addSubview:_scrollView];
...
-(void)layoutSubviews
...
_scrollView.frame = CGRectMake(0, 0, self.frame.size.width, 40);
[_scrollView setContentSize:CGSizeMake(self.frame.size.width * 2, 40)];
...
我认为它应该可以工作,但现在不行。 请告诉我问题是什么。 谢谢
【问题讨论】:
您是否尝试将滚动设置为NO
?
好吧,不过我需要水平滚动。
【参考方案1】:
好吧,试着像这样设置 contentSize:
[_scrollView setContentSize:CGSizeMake(self.frame.size.width * 2, 0)];
让我知道结果。谢谢。
【讨论】:
【参考方案2】:尝试设置_scrollView.scrollEnabled = NO;
这将禁用scrollView
垂直或水平滚动。
更新:仅避免垂直滚动
Refer this link
你需要设置你的scrollView
的框架,然后设置它的contentSize
_scrollView.contentSize = CGSizeMake(scrollView.contentSize.width,scrollView.frame.size.height);
【讨论】:
它同时禁用垂直和水平滚动。我只需要启用水平滚动。 在我的问题中,scrollview frame 和 contentsize 的高度目前都是 40。但它不起作用。【参考方案3】:为此,您必须设置 - 您的滚动视图内容高度是滚动视图高度
_scrollView.contentSize = CGSizeMake(_scrollView.contentSize.width,_scrollView.frame.size.height);
另外一种方式是
如果 scrollView 的 contentSize.height 小于它的 bounds.size.height 它不会垂直滚动。
你需要设置
scrollView.contentSize = (CGSize)<yourContentWidth>, 1.0
【讨论】:
在我的问题中,scrollview frame 和 contentsize 的高度目前都是 40。但它不起作用。【参考方案4】:你只需要水平滚动,不需要垂直滚动。试试下面的代码。我不知道你卡在哪里了:
(void)viewDidLoad
[super viewDidLoad];
[self CreateScrollView];
(void)CreateScrollView
UIScrollView *Scroll_View = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, self.frame.size.width, 40)];
[self addSubview:Scroll_View];
[_scrollView setContentSize:CGSizeMake(self.frame.size.width * 2, 40)];
【讨论】:
【参考方案5】:你可以试试下面的代码:
目标 - C
CGFloat y = SCROLLVIEW_HEIGHT;
self.scrollView.contentSize = CGSizeMake(self.scrollView.frame.size.width, y);
在 Swift 中
self.scrollView.contentSize.height = 1.0
【讨论】:
【参考方案6】:你可以这样试试:
[_scrollView setShowsVerticalScrollIndicator:NO];
【讨论】:
OP 想要禁用滚动。您的代码只会隐藏滚动指示器。你应该编辑你的答案。 :)以上是关于Objective-C:如何在 UIScrollView 中禁用垂直滚动的主要内容,如果未能解决你的问题,请参考以下文章