ScrollView如何控制,不再重复
Posted
技术标签:
【中文标题】ScrollView如何控制,不再重复【英文标题】:How to control ScrollView, that doesn't be repreated again and again 【发布时间】:2012-11-15 09:30:01 【问题描述】:你知道,如何控制ScrollView,所以不再赘述。例如我有 5 张图片(如添加的图),它们应该从 1-5 可见,并且应该在最后一张图片之后立即停止,同时它应该能够向后滚动并在第一张图片之后立即停止。总而言之,它应该只能从 1-5 开始,而不会在第 5 张图片之后和第 1 张之前重复。
现在的问题是,它在第 5 张之后滚动得更远,所以它再次从第 1 张图片开始,反之,当它滚动回第 1 张图片时,它会继续滚动到第 5 张,依此类推。
我用于此的代码是: "InfinitePagingView"页面!。
禁用滚动:
scrollEnabled = NO;
我想知道的是,如果我能够在第五张图片之后立即停止滚动,但它应该只能在右侧进行。那么是否有任何代码,例如:“scrollEnable right = NO & scrollEnable left = NO”。如果没有,我可以使用哪个代码。
提前谢谢
【问题讨论】:
当您不想无限滚动时,也许您不应该使用无限滚动视图... @jimpic 是的,你是对的Neruja Joseph
你应该使用简单的ScrollView
。
【参考方案1】:
所以你想要在右侧无限滚动,而不是在左侧?您需要自定义您正在使用的InfinitePagingView
。查看代码,尤其是方法scrollView:didScroll
并在左侧禁用它。
这不是默认行为,因此不需要设置简单的属性。但是你不觉得这是一种奇怪的行为吗?如果您向右滚动并越过第 5 张图片,那么您又是第 1 张并且您不能再向左滚动?虽然你刚从那个地方过来?
如果您不想无限滚动,只需使用默认的 scrollView!
【讨论】:
【参考方案2】:我使用以下代码在 Scrollview 中显示 5 个 UIButton,它可以根据需要使用。您可以将其用于 5 张图片检查它。
- (void)viewDidLoad
UIScrollView *scrollview = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 407, 320, 80)];
[self.view addSubview:scrollview];
int i;
int spacex = 5;
int spacey=5;
for ( i = 0; i <5; i++)
UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];
btn = [[UIButton alloc] initWithFrame:CGRectMake(spacex, spacey, 115, 45)];
btn.backgroundColor = [UIColor greenColor];
[btn setTitleColor: [UIColor blackColor] forState: UIControlStateNormal];
spacex = spacex + 120;
[scrollview addSubview:btn];
scrollview.contentSize = CGSizeMake(scrollview.frame.size.height*(i+2) , scrollview.frame.size.height);
[super viewDidLoad];
您可以根据您的要求更改它。希望它对您有用。谢谢。
【讨论】:
以上是关于ScrollView如何控制,不再重复的主要内容,如果未能解决你的问题,请参考以下文章
UGUI 用手柄或者键盘控制选择Scroll View中的游戏对象时,滚动条跟着移动