我有一个UIView
类似iPhone的跳板。 我已经使用创造了它UIScrollView
和UIButtons
。 我想禁用说滚动视图水平滚动。 我想只有垂直滚动。 我如何做到这一点?
Answer 1:
你必须设置contentSize
的财产UIScrollView
。 例如,如果你UIScrollView
是320个像素宽(在屏幕的宽度),那么你可以这样做:
CGSize scrollableSize = CGSizeMake(320, myScrollableHeight);
[myScrollView setContentSize:scrollableSize];
该UIScrollView
将仅垂直滚动,因为它已经可以水平显示的一切。
Answer 2:
更新:(@EranMarom在他的评论中指出出来后)
您可以在停止水平滚动或垂直滚动 ScrollViewDelegate
方法。 这是怎么回事,
停止水平滚动:
如果你要水平滚动,那么你就需要增加contentOffset.x。 防止该停止在水平方向上滚动视图滚动。
- (void)scrollViewDidScroll:(UIScrollView *)sender {
sender.contentOffset.x = 0.0
}
停止垂直滚动:
如果要垂直滚动,那么你就需要增加contentOffset.y。 防止该停止在垂直方向上滚动视图滚动。
- (void)scrollViewDidScroll:(UIScrollView *)sender {
sender.contentOffset.y = 0.0
}
上面的代码防止在改变x
和y
一个的scrollview contentOffset
,并导致停在滚动scrollViewDidScroll:
方法。
Answer 3:
因为iOS7使用
self.automaticallyAdjustsScrollViewInsets = NO;
//并创造你与3个页面进行滚动
self.pageView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)];
[self.pageView setContentSize:CGSizeMake(self.view.frame.size.width*3, self.view.frame.size.height)];
[self.pageView setShowsVerticalScrollIndicator:NO];
[self.pageView setPagingEnabled:YES];
[self.view addSubview:self.pageView];
Answer 4:
迅速解决
创建两个出口,一个是你的观点,一个用于滚动视图:
@IBOutlet weak var myView: UIView!
@IBOutlet weak var scrollView: UIScrollView!
然后在你的viewDidLayoutSubviews您可以添加以下代码:
let scrollSize = CGSize(width: myView.frame.size.width,
height: myView.frame.size.height)
scrollView.contentSize = scrollSize
我们所做的是收集的视图的高度和宽度,并设置scrollViews内容大小相匹配。 这将从横向滚动停止滚动型的。
更多的思考:
CGSizeMake需要的宽度和高度使用CGFloats。 您可能需要使用您现有UIScrollViews高度的第二个参数。 这将是这样的:
let scrollSize = CGSize(width: myView.frame.size.width,
height: scrollView.contentSize.height)
Answer 5:
您可以选择视图,然后在Attributes Inspector
取消选中User Interaction Enabled
。
Answer 6:
一旦我做到了与一个UITableView只有1电池更换的UIScrollView,它工作得很好。
Answer 7:
我有tableview中contentInset在viewDidLoad中设置(如下图),这是什么导致水平滚动
self.tableView.contentInset = UIEdgeInsetsMake(0, 30, 0, 0);
检查是否有任何的tableview contentInset设置不同的原因,并将其停用
Answer 8:
我这个挣扎了一段时间尝试失败在这方面和其他线程的各种建议。
然而,在另一个线程(不知道在哪里),有人建议使用在UIScrollView的负面约束为他工作。
所以,我想与结果不一致的约束的各种组合。 最终什么工作对我来说是-32开头和结尾添加约束滚动视图,并与320(并居中)的宽度增加一个(不可见)的TextView。
Answer 9:
试试这个:
CGSize scrollSize = CGSizeMake([UIScreen mainScreen].bounds.size.width, scrollHeight);
[scrollView setContentSize: scrollSize];
Answer 10:
使用此一行。
self.automaticallyAdjustsScrollViewInsets = NO;
Answer 11:
在我的情况的内容查看的宽度比的UIScrollView的宽度更大,这是不需要的水平滚动的原因。 我通过设置内容查看等于UIScrollView中的宽度的宽度来解决它。
希望它可以帮助别人