想要学习一下组件化开发,首先要把一些模块进行解耦,因此就先拿广告轮播图练手一下,主要技术点:使用Block进行解耦,使图片展示的SDWebImage库和轮播图控件解耦。
轮播图封装这里就不在一一讲解了,大家都会。
刚开始的时候,也在想,怎么解耦,不在控件中引用SDWebImage怎么展示图片啊,后来了解了一下看到,可以使用Block讲控件内部需要展示的图片和图片URL作为参数抛出,然后在block中执行图片加载的过程;
ZRSAdPicView *adView = [ZRSAdPicView picViewWithLoadImageBlock:^(UIImageView *imageView, NSURL *url) {
[imageView sd_setImageWithURL:url];
// dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
//
// NSData *data = [NSData dataWithContentsOfURL:url];
// if(data){
// UIImage *image = [UIImage imageWithData:data];
// dispatch_async(dispatch_get_main_queue(), ^{
// imageView.image = image;
// });
// }
//
// });
}];