一、繼承 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