2015-03-31 22 views
3

說我正在創建一個動畫,並且我想將UIView的中心移動到我有的某個CGPoint。我知道我想要的中心是什麼,只是前面提到的CGPoint,我知道我想要的寬度和高度,但是當我爲我的UIView創建框架時,我不知道要爲xy設置爲originUIView的幀起源與其中心之間的關係是什麼?

我應該只是設置0, 0還是其他什麼?有關係嗎?

我是否應該將center設置爲設置原點的另一種方法?讓我希望CGRect有一個center作爲選項的實例化器。

上一個問題涉及到一個類似的問題,但它將它們作爲三個獨立的實體來處理,而不是在創建視圖時如何處理中心。

+0

[UIView frame,bounds and center]的可能重複(http://stackoverflow.com/questions/5361369/uiview-frame-bounds-and-center) – Stuart 2015-03-31 06:32:41

回答

4

是的,繼續前進,並設置初始幀的起源爲任何東西,因爲隨後設置中心將有效地移動這個起源。當它將在稍後被完全配置時使用CGRectZero幀初始化視圖並不罕見。

frame實際上僅僅是基於視圖的centerbounds的計算屬性,所以當涉及到視圖佈局時,所有三者都是內在聯繫的。該UIView Class Reference有這樣說一下:

視圖的幾何形狀由它的framebounds,和center 屬性中定義。 frame定義了其視圖的原點和尺寸,其頂視圖的座標系通常在 佈局中用於調整視圖的大小或位置。可以使用center屬性 來調整視圖的位置而不更改其大小。邊界定義了視圖的內部尺寸,因爲它可以看到它們,並幾乎全部用於自定義繪圖代碼。 frame的 尺寸部分和邊界矩形連接在一起 ,以便更改任一矩形的尺寸更新 兩者的尺寸。

相關問題