2010-10-24 84 views
1

我目前在界面生成器中創建了一個用戶界面 - 它基本上由背景圖片和幾個標籤組成。我需要爲標籤下方的某些元素(圖像)製作動畫,但要在背景上進行動畫製作,但我也需要按特定的z順序繪製它們。在iPhone上更改用戶界面繪製順序

我四處張望,發現CATransformLayer--我仍在研究它。爲了模擬3D,這是管理圖像的Z-順序的最佳方式嗎?我不想使用Open GL爲我做將是非常簡單的假3D動畫...

回答

2

背景:

在iPhone上,UIViews有一個子視圖的NSArray。首先繪製UIWindow的根,然後是子視圖,然後是子視圖。另外,還有第二層:每個UIView都有一個CALayer數組。根CALayer首先繪製,然後依次繪製每個CALayer。

建議:

是的,你可以做到這一點,你概括。但是,如果您執行以下操作,代碼可能會更簡單一些:

在您的具體情況下,使用UIView來保存背景。給它兩個子視圖,最初是透明的,全尺寸的,在界面生成器中設置彈簧和支柱以保持背景的完整大小。將它們排列在Interface Builder的大綱視圖(-0)中,以便UIView ImageViewHolder在UIView ButtonViewHolder之前列出。

這樣,你可以插入和刪除UIImageViews從ImageViewHolder UIView,他們將被繪製在背景之上,並在UIButtons之下。

+0

謝謝!所以,如果我將3個不同的UIImageView添加到ImageViewHolder視圖中,是否添加最後一個或第一個繪製的視圖?另外,如果我添加的第一個視圖繪製在底部,是否有辦法將它保留在頂部? – 2010-10-24 04:23:40

+0

- [addSubview:]把它放在最後,所以它繪製最後一個,但UIView有其他的方法讓你把它放在繪圖順序中的位置。不過,不要使用普通的NSMutableArray方法來更改子視圖數組。 – DavidPhillipOster 2010-10-24 04:28:46

+0

感謝您的幫助。它看起來像我可以使用像bringSubviewToFront做什麼,我想要:) – 2010-10-24 04:55:27

相關問題