模仿系统的UIImageViewspa
总体思路:
咱们想要模仿系统的UIImageView,咱们必须得要知道系统的UIView怎么用.code
第一种用法
系统的用法是建立一个UIImageView对象,设置frame,给它传递一个UIImage,再把它添加到一个View上面就能够了.
能够切换图片.对象
第二种用法
就是在建立的时候直接传递一个UIImage对象,使用initWithImage的方法进行建立一个UImageView的方式
用这种作法建立出来的UIImageView它的尺寸大小和原始图片的尺寸大小同样大.
因此咱们本身的UIImageView也要具备这些功能.
实现步骤:
第一步:新建一个UIView,起名LLImageView.
第二步:给LLImageView添加一个UIImage属性,供外界传递图片
第三步:在DrawRect方法当中把传递的图片绘制到View上面
绘制方法为:[_image drawInRect:rect],绘制的图片尺寸大小和UIView的尺寸大小同样大.
第四步:重写UIImage属性的set方法,在set方法当中让View从新绘制.目的为了可以办到切换图片.
第五步:提供一个- (instancetype)initWithImage:(UIImage *)image方法.
在这个方法当中重写init方法
在初始化时,让View尺寸和图片的实际大小同样大.
而后再给UIImage属性赋值.
这样在绘制图片的时候,显示出来的View已经有尺寸了, 尺寸大小和图片的实际大小同样大.
具体代码实现: blog
1 - (instancetype)initWithImage:(UIImage *)image{ 2 if (self = [super init]) { 3 self.frame = CGRectMake(0, 0, image.size.width, image.size.height); 4 _image = image; 5 } 6 return self; 7 } 8 9 10 -(void)setImage:(UIImage *)image{ 11 _image = image; 12 [self setNeedsDisplay]; 13 } 14 15 - (void)drawRect:(CGRect)rect { 16 [_image drawInRect:rect]; 17 }