我有一個基本的Cocoa應用程序,其自定義NSCollectionView
覆蓋drawRect:
繪製紅色背景(用於說明目的)。drawRect:並不總是在setNeedsDisplay之後調用:YES當父視圖是層支持的時
我注意到在看似隨機的時候,drawRect:
不會被調用,雖然我調用了setNeedsDisplay:YES
。其他時候,它的工作和收集視圖有一個紅色的背景。
我花了幾個小時,但後來我終於注意到,在視圖層次結構高的父視圖之一是層支持的視圖(我有「核心動畫層」在界面生成器中檢查添加一個元素的陰影)。
將該父視圖更改爲不使用圖層支持立即解決了問題,然後總是按預期方式調用drawRect:
。
讓我感到困惑的是,在父視圖上啓用層支持時,有時會調用drawRect:
,但並非總是如此。
如果父視圖是層次支持的,我是否應該假設我無法在任何子視圖中可靠地覆蓋drawRect:
?
編輯將「覆蓋」更改爲「覆蓋」。 – NSResponder