如果我使用CG3的屏幕分辨率的尺寸對CGRectMake進行設備旋轉後重新定位控件,我預計iPhone 4的分辨率翻倍後會發生什麼?使用CGRect重新定位對象使交叉模型安全嗎?
例如,如果我在20,20的位置上設置了一個大小爲125x125的按鈕,iPhone 4上的按鈕會在40,40倍時增加到250x250?
button1.frame = CGRectMake(125,125,20,20);
如果我使用CG3的屏幕分辨率的尺寸對CGRectMake進行設備旋轉後重新定位控件,我預計iPhone 4的分辨率翻倍後會發生什麼?使用CGRect重新定位對象使交叉模型安全嗎?
例如,如果我在20,20的位置上設置了一個大小爲125x125的按鈕,iPhone 4上的按鈕會在40,40倍時增加到250x250?
button1.frame = CGRectMake(125,125,20,20);
對於初學者來說,我希望你使用CGRectMake
不CGMakeRect
。您可以在不考慮iPhone的分辨率的情況下定位控件。您只需放置幀就好像只針對較低分辨率的設備。但是,您必須拍攝所用圖像的2倍圖像。
是的,這樣做是安全的。從iOS 4開始,SDK中內置了一個乘法器。因此,iPhone 2G-3GS的屏幕和iPhone 4的屏幕都佈置在320x480的網格上。當您的代碼在較舊的設備上運行時,乘數將爲1,並且您的控件將顯示在(125,125)處,尺寸爲20x20像素。但是,在iPhone 4上,乘數將爲2,因此您的控件將顯示爲(250,250),並且爲40x40像素。這樣,您的用戶界面在所有iOS設備上看起來都是一樣的。
謝謝你的解釋。 – Louis 2011-03-03 05:59:47
啊,錯字!編輯。好的,謝謝你的信息。 2倍圖像是什麼意思? – Louis 2011-03-03 05:48:05
如果您使用125 * 125按鈕,則通常需要帶有分辨率爲125 * 125的image.png。現在,您需要在應用程序捆綁包中具有250 * 250像素版本的相同圖像,並將其命名爲[email protected](替換圖像與您的圖像名稱..)。此外,當您通過代碼引用此圖片時,請務必不要使用.png擴展名。對於[myButton setImage:[UIImage imageNamed:@「myImage」forState:UIControlStateNormal]]; – Krishnabhadra 2011-03-03 05:50:59
我明白了。謝謝。 – Louis 2011-03-03 05:59:12