UIScrollView 自定义分页距离
Posted
技术标签:
【中文标题】UIScrollView 自定义分页距离【英文标题】:UIScrollView custom paging distance 【发布时间】:2010-05-17 15:05:31 【问题描述】:我在 UIScrollView 中有一个 UIImage(图像的宽度 > 320px)(覆盖整个屏幕宽度)并想要一个分页效果。
我找到的所有教程/示例都解释了如何使用多个 UIImages 或 UIVIews 进行操作,但我在 UIScrollView 中只有 1 个 UIImage。我的目标是创造一种类似“卷尺”的效果。并且滚动视图应该在磁带的每个标记上“翻页”?
如何在小于 UIScrollView 宽度的距离上进行分页?!
【问题讨论】:
【参考方案1】:我想不出比动态计算更简洁的解决方案。如果所需的页面长度为 100 像素,则“滑动” UIImage 以使其相对于实际页面保持不变。所以类似于:
CGFloat pageWidth = 100;
int numPages = ceilf(myImageView.bounds.size.width / pageWidth);
scrollView.contentSize = CGSizeMake(numPages * scrollView.bounds.size.width,
scrollView.bounds.size.height);
然后继承滚动视图的layoutSubviews
方法:
- (void)layoutSubviews
int numPages = ceilf(myImageView.bounds.size.width / pageWidth);
CGRect visibleBounds = [self bounds];
CGFloat start = visibleBounds.origin.x;
CGFloat offset = start / pageWidth;
myImageView.frame = CGRectMake(offset, myImageView.frame.origin.y,
myImageView.frame.size.width,
myImageView.frame.size.height);
我根本没有测试过这个,但希望它能让你走上正轨。这个应该做的是在你滚动时移动图像,这样看起来每个“页面”只移动图像 100px。
【讨论】:
感谢 MrHen! ...只是一个后续问题...在您的 layoutSubvies 方法中,numPages 的目的是什么?干杯! 嗯...我不记得了。我可能忘了拉出那条线,因为很明显,它不再做任何事情了。 :)以上是关于UIScrollView 自定义分页距离的主要内容,如果未能解决你的问题,请参考以下文章
使用自动布局在自定义 UITableViewCell 上分页 UIScrollView
iOS 开发之使用 ScrollView 实现自定义滚动距离(半屏分页滑动)