關情紙尾-----Quartz2D-模仿系統的UIImageView

模仿系統的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  }
相關文章
相關標籤/搜索