5.3 固體對象

2018-02-24 15:07 更新

固體對象

現(xiàn)在你懂得了在3D空間的一些圖層布局的基礎(chǔ),我們來試著創(chuàng)建一個固態(tài)的3D對象(實際上是一個技術(shù)上所謂的空洞對象,但它以固態(tài)呈現(xiàn))。我們用六個獨立的視圖來構(gòu)建一個立方體的各個面。

在這個例子中,我們用Interface Builder來構(gòu)建立方體的面(圖5.19),我們當然可以用代碼來寫,但是用Interface Builder的好處是可以方便的在每一個面上添加子視圖。記住這些面僅僅是包含視圖和控件的普通的用戶界面元素,它們完全是我們界面交互的部分,并且當把它折成一個立方體之后也不會改變這個性質(zhì)。

圖5.20 正面朝上的立方體

從這個角度看立方體并不是很明顯;看起來只是一個方塊,為了更好地欣賞它,我們將更換一個不同的視角。

旋轉(zhuǎn)這個立方體將會顯得很笨重,因為我們要單獨對每個面做旋轉(zhuǎn)。另一個簡單的方案是通過調(diào)整容器視圖的sublayerTransform去旋轉(zhuǎn)照相機

添加如下幾行去旋轉(zhuǎn)containerView圖層的perspective變換矩陣:

perspective = CATransform3DRotate(perspective, -M_PI_4, 1, 0, 0); 
perspective = CATransform3DRotate(perspective, -M_PI_4, 0, 1, 0);

這就對相機(或者相對相機的整個場景,你也可以這么認為)繞Y軸旋轉(zhuǎn)45度,并且繞X軸旋轉(zhuǎn)45度。現(xiàn)在從另一個角度去觀察立方體,就能看出它的真實面貌(圖5.21)。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號