2011-07-13 46 views
1

我正在嘗試開發一個使用一些簡單的trig函數的應用程序。不幸的是,隨着iPhone上設置座標系的方式以及其他許多設備中,我的計算出現了一些問題 - 所有的偏移都集中在一起。是否有可能使我的視圖中心等於(0,0)?

例如,我創建的應用程序有一個小點,圍繞我的中心軌道。不幸的是,因爲中心不是(0,0),我不得不放入任何額外的支票,以在到達中心時翻轉我的座標(+180度),並在trig函數中添加額外的計算來調整 - - 只是爲了說明原產地系統的工作原理。

我會像設備的中心,在這種情況下(160,240)是我的應用程序的中心源。例如(160,240) = (0,0)這將意味着,如果我把所有子視圖到左側的主視圖的中心,該視圖的X座標會產生負面X.否則,我將不得不通過更多的計算,調整偏移量 - 迄今爲止已證明這是一個頭痛的問題。

我已經使用編輯器將我的視圖的原點設置爲中心。但是,我在視圖上放下的任何東西仍然保留頂部,左側的座標結構爲,0,0,

這可能嗎?我會假設我可以將我的觀點的起源設定爲中心,它必須做一些有用的事情?

回答

1

兩者你可以使用的sublayerTransform性能視圖的layer

myView.layer.sublayerTransform = CATransform3DMakeTranslation(160.0, 240.0, 0.0); 
+0

所以問題 - 如果我要使用sublayerTransform,任何圖像視圖已經在主視圖重新調整到新的座標,同時保留其位置?所以基本上,如果我有一個0,0的圖像,它會變成(-160,-240)? –

+0

UIView也有它自己的變換屬性,所以你不必深入到圖層。 – Dancreek

+0

@George是的,任何子視圖都會在設置'sublayerTransform'後調整它們的位置。 – omz

0

好,

退房UIScreen 「邊界」 屬性:

Apple docs

應該是比較簡單的使用這些來計算中心屏幕轉換。

喜歡的東西:

myView.center = CGPointMake([[UIScreen mainScreen] bounds].size.width/2, [[UIScreen mainScreen] bounds].size.height/2); 

here

相關問題