2009-07-29 53 views
3

我有一個非常簡單的CA演示。它使用圖像文件創建一個包含內容的圖層,並顯示該圖像。在窗口中單擊時,它會使用隱式動畫將圖像平滑移動到鼠標點。這工作正常,運行完美光滑。但是,隨着窗戶變大,平滑度變差。低於屏幕尺寸的75%左右是可以接受的。通過最大化的窗口或全屏模式,它非常粗糙和不平整。CoreAnimation生澀的大窗口

我在Intel Mac Mini上運行OSX 10.5.7。它有一個英特爾GMA950 GPU。我的屏幕是1920 x 1200.

我根本沒有drawRect方法。一切都是通過使用隱式動畫設置CALayer的位置屬性來實現的。

我有權懷疑硬件有問題嗎?

尼爾·貝利斯

回答

0

您的硬件僅僅是罰款,並能 - 實施缺乏。

您不允許動畫或甚至觸摸位置屬性。該屬性由視圖處理,如果支持層。不是你。並在很多場合重新計算。所以如果你開始動畫並改變那個屬性,那就會有麻煩。至少根據蘋果...

這裏摘錄

據蘋果 - > 要動態更改在OS X中的層支持的觀點,最好是使用視圖自身的接口。如果有的話,您應該很少直接修改附加到您的某個圖層支持的NSView對象的圖層。 AppKit負責創建和配置這些圖層對象並在您的應用運行時管理它們。修改圖層可能會導致圖層與視圖對象不同步,並可能導致意外的結果。對於層支持的觀點,你的代碼絕不能修改圖層對象的下列任一屬性: •anchorPoint •範圍 •compositingFilter •過濾器 •幀 •geometryFlipped •隱藏 •位置 •則shadowColor • shadowOffset •shadowOpacity •shadowRadius •變換