iOS 广告滚动效果

2018-07-18  本文已影响0人  TigerManBoy

滚动原理

之前项目有一个简单的广告滚动效果,就自己动手写了一个,比较简单,原理就是两个label的循环替换,可以向上滚动和向下滚动。

实现

    YJAutoScrollLabel *autoScroll = [[YJAutoScrollLabel alloc] initWithFrame:CGRectMake(20, 100, self.view.frame.size.width - 40, 50) titles:@[@"123123123",@"456456456",@"789789789",@"147147147",@"258258258"]];
    [self.view addSubview:autoScroll];

开始滚动

[autoScroll beginScroll];

停止滚动

[autoScroll closeScroll];

广告消息的一些属性设置:

autoScroll.time = 2;//定时器轮询一次的时间 默认2s
autoScroll.adFontSize = 14;//广告文字字体大小 默认16
autoScroll.adTextAlignment = NSTextAlignmentCenter;//广告文本字体设置 默认NSTextAlignmentLeft
autoScroll.adColor = [UIColor redColor];//广告文字的颜色 默认黑色
autoScroll.adNumberOfLines = 0;//广告文字的行数  默认1行
autoScroll.isHaveTouchEvent = YES;//广告是否可以点击  默认不可点击
autoScroll.margen = 20;//广告文本距离左边的边距  默认是10

原理分析

    CGFloat labelY = self.directionType == YJScrollDirectionTypeTop ? -kHeight : kHeight;
    [UIView animateWithDuration:1 animations:^{
        currentLabel.frame = CGRectMake(_margen, labelY, kWidth - _margen, kHeight);
        hiddenLabel.frame = CGRectMake(_margen, 0, kWidth - _margen, kHeight);
    } completion:^(BOOL finished) {
        currentLabel.frame = CGRectMake(_margen, -labelY, kWidth - _margen, kHeight);
    }];
    currentLabel.frame = CGRectMake(_margen, -labelY, kWidth - _margen, kHeight);
详情请见 demo
上一篇 下一篇

猜你喜欢

热点阅读