ios之 UIScrollView

    NSTimer *timer;
    NSInteger time;
    UIScrollView *scrollview;
    CGFloat height;

    NSArray *arr = @[@"测试1afdfafs",@"测试2sadfasasf",@"测试3adsaf",@"测试4adsafa"];

    scrollview = [[UIScrollView alloc] initWithFrame:CGRectMake(20, 100, WIDTH-40, 20)];
    scrollview.backgroundColor = [UIColor redColor];
    scrollview.contentSize = CGSizeMake(WIDTH-40, arr.count*20);
    scrollview.showsVerticalScrollIndicator = NO;
    scrollview.userInteractionEnabled = NO;
    scrollview.pagingEnabled = YES;
    [self.view addSubview:scrollview];
    time = 0;
    for (int i = 0; i<arr.count; i++) {
        UILabel *label  =[[UILabel alloc]initWithFrame:CGRectMake(0, i*20, WIDTH-40, 20)];
        label.numberOfLines = 0;
        label.font = [UIFont systemFontOfSize:15.0];
        label.text = arr[i];
        [scrollview addSubview:label];
    }

     timer = [NSTimer scheduledTimerWithTimeInterval:3 target:self selector:@selector(action) userInfo:nil repeats:YES];

-(void)action{
    NSArray *arr = @[@"测试1",@"测试2",@"测试3",@"测试4"];
    if (time == arr.count-1) {//当滚动到最后一个时,回到第一个
        time = 0;
        scrollview.contentOffset = CGPointMake(0, 0);
    }else{
        time = time +1;
        [UIView animateWithDuration:1 animations:^{
            scrollview.contentOffset = CGPointMake(0, time*20);
        } completion:^(BOOL finished) {
        }];
    }
 

效果:

2.防止下拉的时候调用 scrollViewDidEndDecelerating

CGFloat lastContentOffset;//偏移量

#pragma mark - UIScrollerViewDelegate
-(void)scrollViewWillBeginDragging:(UIScrollView *)scrollView
{
    lastContentOffset = scrollView.contentOffset.x;
}
-(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
{
    //防止下拉的时候调用scrollViewDidEndDecelerating
    if (lastContentOffset != scrollView.contentOffset.x) {
    }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值