iOS之跑马灯文字上下滚动效果

近期项目中涉及到滚动新闻通知的跑马灯效果,封装的目的在于不断提高自己的技术能力,使得代码越来越精简,使控制器的负担越来越少,所以我们再写代码的时候应该将代码能封装的尽量封装起来,只暴露一些初始化方法以及和一些需要设置的属性即可。

iOS之跑马灯文字上下滚动效果_第1张图片
.jpg

首先我们先看实现跑马灯的.h文件

/** 标题的字体 默认为14 */
@property(nonatomic)UIFont *titleFont;
/**标题的颜色 默认红色*/
@property(nonatomic)UIColor *titleColor;
/**存放titles的数组 和初始化的数组一致*/
@property(nonatomic)NSArray *titleArr;
//回调
@property(nonatomic,copy)void(^handlerTitleClickCallBack)(NSInteger index);

#pragma mark - init Methods
-(instancetype)initWithFrame:(CGRect)frame withTitle:(NSArray *)titles;

其次我们再控制器里面导入头文件便可以直接使用了

#pragma mark - Life Cycle
- (void)viewDidLoad {
    [super viewDidLoad];
    [self.view addSubview:self.marqueeView];  
}

#pragma Lazy Methods
- (MarqueeView *)marqueeView{

    if (!_marqueeView) {
        MarqueeView *marqueeView =[[MarqueeView alloc]initWithFrame:CGRectMake(10, 20, 400, 30) withTitle:@[@"1.我觉得封装好好玩",@"2.经常玩玩可以锻炼自己的技术耶",@"3.所以要经常经常玩玩,这样才能更加完美",@"4.你说对不对",@"end"]];
        marqueeView.titleColor = [UIColor blueColor];
        marqueeView.titleFont = [UIFont systemFontOfSize:16];
        marqueeView.backgroundColor = [UIColor yellowColor];
        __weak MarqueeView *marquee = marqueeView;
        marqueeView.handlerTitleClickCallBack = ^(NSInteger index){
            
            NSLog(@"%@----%zd",marquee.titleArr[index-1],index);
        };
        _marqueeView = marqueeView;
    }
    return _marqueeView;

}

最后附上美丽的一张图加上爱心满满的demo

iOS之跑马灯文字上下滚动效果_第2张图片
上下滚动.gif

demo下载链接点我

你可能感兴趣的:(iOS之跑马灯文字上下滚动效果)