我做一些定製,並與困惑UIGraphicGetCurrentContext()
CGContextRef context = UIGraphicsGetCurrentContext();
我面臨的問題:什麼是這一背景下,如何此背景下的大小定義的默認大小。
編輯:
請大家看一個背景下,當我們在紅色的背景細胞從link1
和頭紅色部分以及link2
。
然而,這些寬度是不一樣的,即使他們的UIView
子類,我迷路找出原因...
我做一些定製,並與困惑UIGraphicGetCurrentContext()
CGContextRef context = UIGraphicsGetCurrentContext();
我面臨的問題:什麼是這一背景下,如何此背景下的大小定義的默認大小。
編輯:
請大家看一個背景下,當我們在紅色的背景細胞從link1
和頭紅色部分以及link2
。
然而,這些寬度是不一樣的,即使他們的UIView
子類,我迷路找出原因...
我不明白什麼是你的問題,尤其是當Raywenderlich的教程非常清楚地說明了這一點。
CGContextRef context = UIGraphicsGetCurrentContext();
會給你當前的「畫布」,然後你只是改變那個畫布的狀態。
CGContextRef context = UIGraphicsGetCurrentContext();
CGColorRef redColor =
[UIColor colorWithRed:1.0 green:0.0 blue:0.0 alpha:1.0].CGColor;
CGContextSetFillColorWithColor(context, redColor);
CGContextFillRect(context, self.bounds);
大小由無論你調用get上下文功能定義,函數被調用自定義的drawRect方法內,根據蘋果文檔:
當前的圖形上下文是默認爲零。在調用其 drawRect:方法之前,視圖對象會將有效上下文推送到堆棧上,使其變爲最新。但是,如果您未使用UIView對象執行繪圖,則必須使用UIGraphicsPushContext函數手動將有效上下文手動推入堆棧 。
因此,當傳遞self.bounds時,會使用調用此函數的元素的大小。
這段代碼甚至可以針對不同大小的不同單元格調用,因爲每個單元格都會調用drawRect方法並獲得相應的大小。
也許你的困惑在於,它們是UIView的子類,並不意味着它們在故事板的視圖中具有「UIView」屬性。這意味着它們是與uiview具有相同結構的元素(這就是爲什麼他們可以調用drawRect),但是您將擴展或自定義您的期望行爲。
PD:剛纔注意到我今天早些時候回答了你的另一個問題哈哈。