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

來源:互聯網
上載者:User

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

模仿系統的UIImageView

整體思路:
我們想要模仿系統的UIImageView,我們必須得要知道系統的UIView怎麼用.

第一種用法
系統的用法是建立一個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已經有尺寸了, 尺寸大小和圖片的實際大小一樣大.

具體代碼實現:  

  

 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  }

 

 





相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.