🙃.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;
}
网友评论