设置UIscrollView页面大小
我一直在寻找如何使UIScrollview包装(循环)的滚动菜单。 我检查了这个question,这个例子有效,也许这是一个好方法。设置UIscrollView页面大小
但不是只显示一个页面(图片)我需要显示3页,并能够在一次滚动一页。
那么我怎样才能设置UIScrollView页面尺寸比框架小1/3(我认为这样它会工作)?
是否可以实现?如果不是,请告诉我去另一个方向
感谢
过了一段时间,我最终需要再次解决这个问题。
我找到了适合我的解决方案。
检查this answer:
- 更改您的滚动视图大小,你想
- 设置页面大小的
scroll.clipsToBounds = NO
创建UIView子类(如HackClipView)和覆盖则hitTest:withEvent:方法方法
-(UIView *) hitTest:(CGPoint) point withEvent:(UIEvent *)event { UIView* child = [super hitTest:point withEvent:event]; if (child == self && self.subviews.count > 0) { return self.subviews[0]; } return child; }
将
HackClipView.clipsToBounds = YES
- 把你的滚动视图在此HackClipView(你想要的总的滚动大小)
更多细节
见 this answer更新: 正如卢修斯回答,你可以说现在执行
UIScollViewDelegate
协议并使用- (void)scrollViewWillEndDragging:(UIScrollView *)scrollView withVelocity:(CGPoint)velocity targetContentOffset:(inout CGPoint *)targetContentOffset
方法。由于targetContentOffset
是一个指针。使用这种方法并不能保证用户可以同时滚动浏览多个页面,而使用滚动视图页面获得相同的结果。但设置descelerationRate
到fast
将几乎给你同样的结果
-
[theScrollView setFrame:<a frame>];
将设置滚动视图 -
[theScrollView setContentSize:<a Size>];
的框架设置滚动视图
大小的内容大小在1.应该是在2设置的大小的三分之一。
我相信你在说的是有前面的一部分页面和下一页的一部分可见。这样做的方法是将滚动视图的框架设置为您想要的(例如,小于屏幕),然后关闭滚动视图的子视图剪辑。这将达到你以后的效果。
其完成的;) 我如何关闭问题? – Frade 2011-12-14 17:16:23
谢谢莎拉..并为错误感到遗憾..;) – Frade 2012-01-11 18:55:36
那么你是如何解决这个问题的?您正试图使其页面向右分页,例如,左侧显示的前一个屏幕的1/3是正确的?如果你发现如何缩小每一页,我很想知道如何,谢谢。 – Ryan 2012-04-17 18:46:45