對於UITableView和UIImageView的DrawRect重寫之後的影響

一、繼承 UITableView和UIImageView , 重寫 DrawRect 方法,然後裏面留空

  ImageView

@implementation DrawImageView

- (void)drawRect:(CGRect)rect {
    // Drawing code
}


@end

  Table

@implementation DrawTestTable

- (void)drawRect:(CGRect)rect
{
    
}

@end

  結果

 

二、分析

  對於UITableView來說,最終顯示的內容是 cell 和 header, UITableView只是作爲一個容器,系統不在這個容器上面繪製任何內容

  對於UIImageView來說,真正顯示的內容在CALAyer的ID上,這裏和DrawRect中的繪製並不衝突

  與UILabel不太相同的是,UILabel中的文字是真正“畫”上去的, UITableView 和 UIImageView 是通過設置另外的屬性,由render server疊加上去的

  因此,對於UIView的屬性,背景色之類的屬性,這些和DrawRect也不衝突,兩個可以同時生效。

  通過比較不同的UIKit組件,可以大概知道UIKit繪製的原理。

 

Demo下載地址:

https://files.cnblogs.com/files/doudouyoutang/DrawTest.zip

  

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章