我有一個CALayer,我只爲可見區域提供內容(有點類似於CATiledLayer)。問題是,在CALayer的可見區域發生變化時,似乎沒有辦法接收通知,以便調用displayLayer。我目前子類化並掛接setPosition,setBounds和setTransform,但是這並不能捕獲超級視圖/圖層更改的情況(例如,UIScrollView通過更改滾動視圖原點來滾動)。我將代碼中的父視圖和setNeedsDisplay散佈在一起。CALayer的可視區域更改時的通知?
有沒有更好的方法?
感謝您的回覆。 visbleRect是隻讀屬性,所以不提供通知。 needsDisplayOnBoundsChange只捕捉到我的圖層邊界,而不是包含我的圖層的視圖/圖層堆棧中的任何更改。同樣,setNeedsDisplayForKey只捕獲對我的圖層的更改(儘管它可能是一種比覆蓋方法更好的解決方案,正如我目前所做的那樣)。 CGContextGetClipBoundingBox()是沒用的,因爲我沒有CGContext。我直接使用未由CG渲染的圖像設置圖層內容。仍然沒有一般解決方案 – 2013-04-18 20:40:58