Re: [問題] Draw a string in a specific CALayer

看板MacDev作者 (畢業了..@@")時間14年前 (2011/04/14 10:31), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串5/6 (看更多)
※ 引述《zonble (zonble)》之銘言: : ※ 引述《zonble (zonble)》之銘言: : : 推 leondemon:謝謝Z大!CALayer的delegate是否不能是UIView? 04/13 23:03 : 其實是呼叫這個 layer 繪圖,這個 layer 的 drawInContext: : 就會呼叫 view 的 drawLayer:inContext: ,最後呼叫到 drawRect:。 : 所以,如果你把一個 UIView 當成了另外一個 layer 的 delegate, : 就要自行從 drawLayer:inContext: 所傳入的 layer 物件,來判斷到 : 底是哪一個 layer,決定應該畫怎樣的圖。大概有三種解法: : 1. 在 drawLayer:inContext: 中寫一堆 if else : 2. 把你的 layer 的 delegate 註冊到其他 object 上 : 3. subclass CALayer,實作 drawInContext: : 我是覺得 3 比較方便。 : 順道一提,由於一個 view 的呈現,其實是上面的 layer 負責的。 : 所以,如果對這個 view 的 layer 呼叫 renderInContext:,然後 : 給一個 image context 進去,我們就可以拿到一個 view 的截圖了。 : 話說三月底的 cocoaheads 剛好整理了一個 coreanimation 的投影片 : http://www.scribd.com/doc/51693714/Core-Animation : 裡頭剛好有講到這些東西。 感謝Z大的投影片 也拜讀完了 但還有個疑問 如果說要custom draw 感覺去繼承UIView並且實作drawRect就好啦? 什麼情況之下會需要去產生一個CALayer並透過addSublayer加到UIView.layer之中? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.135.251.162
文章代碼(AID): #1DfboESf (MacDev)
討論串 (同標題文章)
文章代碼(AID): #1DfboESf (MacDev)