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如何控制,不再重复的主要内容,如果未能解决你的问题,请参考以下文章

React Native Scroll View弹回顶部

Scroll view 备忘

UGUI 用手柄或者键盘控制选择Scroll View中的游戏对象时,滚动条跟着移动

Android 如何在进入有scrollView的页面时滑动条置顶

微信小程序 -- scroll view

Android 控制ScrollView滚动到底部