-1
我注意到當在UIView上設置一個框架時,UIView調用setNeedsDisplay,然後調用drawRect。我注意到,即使將contentMode設置爲Center,ScaleAspectFit,ScaleToFill時也是如此。我希望drawRect只被調用一次,而不是在框架改變時調用。這是可能的/是否有一個contentMode,使這個?當調用setFrame時不調用drawRect
我注意到當在UIView上設置一個框架時,UIView調用setNeedsDisplay,然後調用drawRect。我注意到,即使將contentMode設置爲Center,ScaleAspectFit,ScaleToFill時也是如此。我希望drawRect只被調用一次,而不是在框架改變時調用。這是可能的/是否有一個contentMode,使這個?當調用setFrame時不調用drawRect
當調用drawRect:
時,這不關你的事。你關心的是這個問題。系統在需要調用時會調用它。你的工作是每次調用它時繪製。如果你已經正確實施了drawRect:
,那根本不會有任何問題。這是一個框架。它做它的工作,你做你的工作。
我的drawRect是爲了做正確的事情而寫的。我擔心這是CPU限制,我想盡可能減少它。 – shreyasva 2014-12-19 05:19:02
你瞭解iOS繪圖系統嗎?你是否意識到它考慮在_every_ runloop的末尾重繪?您是否瞭解CATransaction以及每次交易提交時會發生什麼?繪畫沒有某種「負擔」。運行時知道何時繪製。代碼運行時實際上沒有繪圖。不要擔心會開心。 – matt 2014-12-19 05:22:04