想让我的 UIScrollView 是无限的(就像日历中的日期)

Posted

技术标签:

【中文标题】想让我的 UIScrollView 是无限的(就像日历中的日期)【英文标题】:Want to make my UIScrollView be infinite (like dates in a calendar) 【发布时间】:2014-05-28 08:13:48 【问题描述】:

我有一个这样的 UIScrollView:

self.view.backgroundColor = [UIColor redColor];
UIScrollView *scroll = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, 100)];
scroll.pagingEnabled = YES;
NSInteger numberOfViews = 3;
for (int i = 0; i < numberOfViews; i++) 
    CGFloat xOrigin = i * self.view.frame.size.width;
    UIView *awesomeView = [[UIView alloc] initWithFrame:CGRectMake(xOrigin, 0, self.view.frame.size.width, self.view.frame.size.height)];
    awesomeView.backgroundColor = [UIColor colorWithRed:0.5/i green:0.5 blue:0.5 alpha:1];
    [scroll addSubview:awesomeView];

[scroll setShowsHorizontalScrollIndicator:NO];

scroll.contentSize = CGSizeMake(self.view.frame.size.width * numberOfViews, self.view.frame.size.height);
[self.view addSubview:scroll];

这是我想要的正确手势,适用于有限的自定义子视图集,但是如何使 scollview 变为无限?

我希望子视图是日期,左右滑动会显示下一个或上一个日期。

【问题讨论】:

【参考方案1】:

要么使用UIScrollViewDelegate 方法-(void)scrollViewDidScroll:(UIScrollView*)scrollView 并调整您的视图位置和滚动视图内容的偏移量,或者查看Apple 的示例,了解如何通过子类化UIScrollView 创建无限水平滚动视图:https://developer.apple.com/library/ios/samplecode/StreetScroller/

【讨论】:

以上是关于想让我的 UIScrollView 是无限的(就像日历中的日期)的主要内容,如果未能解决你的问题,请参考以下文章

如何在 UIScrollView 上添加 UIView

自动移动 UIScrollView 区域的可见性

iPhone:在 UIScrollView 内无限循环内容

UIscrollView 上的绘图视图需要无限缩放

如何使边框布局中心区域无限滚动?

如何让我的 Nib 正确加载我自定义的 UIScrollView 子类?