UIScrollView 分页仅用于水平,而不是垂直?
Posted
技术标签:
【中文标题】UIScrollView 分页仅用于水平,而不是垂直?【英文标题】:UIScrollView paging just for horizontal, but not vertical? 【发布时间】:2010-01-13 18:30:55 【问题描述】:我一直在搞乱 UIScrollView。本质上,我已将 7 个视图放入其中,它们都比 contentSize 高。我将启用分页设置为是,它在水平方向上工作得很好。然而,一个意想不到的副作用是它还启用了垂直分页。我的高视图在 contentSize 的高度的倍数处停止。我希望它正常垂直滚动,并水平分页。这可能吗?
谢谢
【问题讨论】:
看这个:***.com/questions/10478586/… 【参考方案1】:不是AFAIK。您应该继承 UIScrollView,如文档中所述:
子类可以覆盖 touchesShouldBegin:withEvent:inContentView:、pagingEnabled 和 touchesShouldCancelInContentView: 方法(由滚动视图调用)来影响滚动视图处理滚动手势的方式。
【讨论】:
【参考方案2】:只有当一个维度的 contentSize 不等于同一维度的框架大小时,滚动视图才允许滚动。尺寸也要均匀。
因此,在您的示例中,请确保您适当地设置 contentSize 以使框架高度。这将阻止垂直滚动,无论您在滚动视图中有什么内容。
【讨论】:
【参考方案3】:“Cocoanetics”是对的。试试这个代码。
uiScollView *view = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, 360, 340)]; view.scrollEnabled = YES; view.pagingEnabled=YES; int y=20; 对于 (int i=0; 我 UIButton *btn=[UIButton buttonWithType:UIButtonTyperoundRect]; [btn setTitle:[NSString stringwithFormate:@"%d",i] forState:UIControlStateNormal]; 诠释 x = 0; 如果 (i%2==0) x=20; 其他 x=190; [btn setFrame:CGRectMake(x, y,170*0.8,170*0.8)]; btn.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter; btn.contentHorizontalAlignment = UIControlContentHorizontalAlignmentCenter; 如果 (i%2==1) y=y+170; [btn addTarget:self action:@selector(buttonPressed:) forControlEvents:UIControlEventTouchUpInside]; btn.tag=i; [查看 addSubview:btn]; [查看 setContentSize:CGSizeMake(360, y+150)]; [查看 scrollRectToVisible:CGRectMake(0, 0, 360, 340) 动画:YES]; view.scrollEnabled=TRUE; self.view = 视图; self.view.backgroundColor = [UIColor clearColor]; [查看发布];这对我有用。
【讨论】:
以上是关于UIScrollView 分页仅用于水平,而不是垂直?的主要内容,如果未能解决你的问题,请参考以下文章
在 UIScrollView 中延迟加载不同尺寸的图像而不分页