美文网首页
两行Label滚动展示

两行Label滚动展示

作者: PZcoder | 来源:发表于2017-04-18 17:28 被阅读57次

大概思路

分为两个View,一个view上展示两行Label;
两个View使用定时器切换滚动;
Label上添加点击手势,获取被点击的Label的tag值。

- (void)initAction
{
    CGRect showFrame = CGRectMake(0, 0, 320, 88);//正在展示
    CGRect middleFrame = CGRectMake(0, -88, 320, 88);//上移后的位置
    CGRect nextFrame = CGRectMake(0, 88, 320, 88);//准备展示
    
    firView = [[UIView alloc] initWithFrame:showFrame];
    secView = [[UIView alloc] initWithFrame:middleFrame];
   
    for (int i = 0; i < 4; i ++)
    {
        CGRect labelFrame = CGRectMake(0, 0 + (i%2) * 44, 320, 44);
        UILabel *label = [[UILabel alloc] initWithFrame:labelFrame];
        label.textAlignment = NSTextAlignmentCenter;
        label.text = [NSString stringWithFormat:@"%d",i];
        label.backgroundColor = [UIColor grayColor];
        label.tag = i;
        
        UITapGestureRecognizer *gesture = [[UITapGestureRecognizer alloc] init];
        [gesture addTarget:self action:@selector(labelTaped:)];
        label.userInteractionEnabled = YES;
        [label addGestureRecognizer:gesture];
        
        if (i == 0 || i == 1)
        {
            [firView addSubview:label];
        }
        else
        {
            [secView addSubview:label];
        }
    }
    
    [self.view addSubview:firView];
    [self.view addSubview:secView];
    
    timer = [NSTimer scheduledTimerWithTimeInterval:3 repeats:YES block:^(NSTimer * _Nonnull timer)
             {
                 if (firView.frame.origin.y == showFrame.origin.y)
                 {
                     //1.两个都向上滚动
                     [UIView animateWithDuration:0.5 animations:^
                      {
                          [firView setFrame:middleFrame];
                          [secView setFrame:showFrame];
                          
                      }
                                      completion:^(BOOL finished)
                      {
                          [firView setFrame:nextFrame];//准备展示
                      }];
                 }
                 else
                 {
                     [UIView animateWithDuration:0.5 animations:^
                      {
                          [firView setFrame:showFrame];
                          [secView setFrame:middleFrame];
                          
                      }
                                      completion:^(BOOL finished)
                      {
                          [secView setFrame:nextFrame];
                      }];
                 }
             }];
}

//点击后获取被点击的信息,可以进行页面跳转操作等。。。
- (void)labelTaped:(UITapGestureRecognizer *)gesture
{
    UILabel *label = (UILabel *)gesture.view;
    NSLog(@"label.tag == %ld",(long)label.tag);
}

相关文章

  • 两行Label滚动展示

    大概思路 分为两个View,一个view上展示两行Label;两个View使用定时器切换滚动;Label上添加点击...

  • 循环滚动展示 label

    循环滚动展示 label业务需要做了一个上下滚动展示的文字广告位,类似轮播图的效果 Github 上的 Demo ...

  • label显示的宽高

    label单行显示的size label多行显示的size label最多显示两行时的size

  • 文字滚动视图

    项目中文字展示不全 老板要求文字在label上滚动 查了很多资料 最后找到李明杰老师的一个demo 封装的很...

  • Swift 滚动label

    /// 滚动labelclass USTradeScrollLabelView: USBaseView {file...

  • Label会根据展示内容的多少展示自己的宽高

    这样的话,会根据Label上展示数据的多少,自己控制高度,完全使Label适应文字;这样可以获取Label的宽和高...

  • 一个Label实现文字上下滚动

    Label向上滚动 播放系统消息 NSArray*arr =@[@"测试一",@"测试二",@"测试三",@"测试...

  • 滚动播放Label封装

    相信大家有时候会遇到在首页上部展示一行文字,但是文字又很长无法只使用一行来展示,于是大家就想到平时我们在生活中看到...

  • UILabel中字体滚动显示

    记录下UILabel中字体超出Label宽度时滚动显示 SHFontCycleLabel.h SHFontCycl...

  • table固定首列

    最近页面新需求:table列字段较多,保证第一列(类似员工姓名等重要信息)固定展示,滚动横向滚动条其他字段滚动展示...

网友评论

      本文标题:两行Label滚动展示

      本文链接:https://www.haomeiwen.com/subject/ltkqzttx.html