2012-11-16 73 views
2

我一直在尋找這裏和谷歌,但我仍然有這個奇怪的問題,我不能確定。下面我有一個應用程序的照片,與4個UIButtons有應用背景圖片: enter image description here帶有背景圖片 - iPhone 5的按鈕大小調整問題

當我調整/在iPhone 5上運行,頂部的按鈕調整大小以一種非常奇怪的方式:

enter image description here

如何讓所有UIButtons以與iPhone 5相同的方式調整大小?可能嗎?我需要使用不同的方法嗎?

我真的希望這不是重複,但我完全難住。如果我在UIView的其他位置更改UIButtons,則會調整其他位置,或者顯示出奇怪的間距......我不明白。謝謝你的幫助!

編輯:我在Xcode 4.5上使用iOS 6。我正在iPhone 4S和iPhone 5上測試。我檢查了AutoLayout。如果我使用Pin(剛發現它),我可以讓UIButton保持其高度。

澄清我的問題。我想讓UIButtons調整大小,使它們佔據屏幕的相同百分比....我希望比例相同,而不是簡單地添加一堆空白空間。我希望更清楚地說明

回答

2

您可以使用的功能之一稱爲AutoLayout。它提供了Xcode,使其更容易調整4英寸屏幕的東西。你可以在這裏找到一個很好的例子:http://www.raywenderlich.com/20881/beginning-auto-layout-part-1-of-2

但據我所知,AutoLayout只適用於iOS 6,它使「它不那麼有用」。我一直在使用一個名爲的類,它的來源可以在這裏找到:https://github.com/erica/uidevice-extension並檢查平臺類型是否爲iPhone 5.我已經在一個方法中設置了一個方法,該方法在視圖加載時設置GUI。我實現的一個示例:

UIImage *backgroundImage; 

if ([[UIDevice currentDevice] platformType] == UIDevice5iPhone) 
{ 
    //I have a 4 inch screen present 
    myButton.frame = CGRectMake(x, y, w, h); //Set the frame as you would like it to look on the iPhone 5 

    backgroundImage = [[UIImage alloc] initWithCGImage:[UIImage imageNamed:@"[email protected]"].CGImage scale:2.0 orientation:UIImageOrientationUp]; 
} 
else 
{ 
    //I have a 3.5 inch screen present 
    myButton.frame = CGRectMake(x, y, w, h); //Set the frame as you would like it to look on the iPhone 3, 3gs, 4, 4s... 

    backgroundImage = [[UIImage imageNamed:@"main_background"] retain]; 
} 
self.view.backgroundColor = [UIColor colorWithPatternImage:backgroundImage]; 
[backgroundImage release]; 

希望它清除了一下。

+0

我使用的是iOS 6下,我有自動版式檢查。這是Xcode 4.5中的一個問題,並且在iPhone 4S和iPhone 5上都進行了測試。感謝您的回答,我會繼續研究它。 – Siriss

+0

THANKs,我沒有有效地使用AutoLayout,當我使用Pin時,我得到的UIButton保持相同的高度。但是,我想保持相同的比例。我編輯了上面的問題。謝謝! – Siriss

+0

沒問題,只要記住接受答案,如果它解決了你的問題。 – Majster

1

你應該先禁用自動版式該選項使用的是「顯示文件檢查器」

+0

爲什麼我不應該使用AutoLayout? – Siriss

+0

自動佈局主要是創建問題,並沒有使用抱歉不知道自動佈局的目的 –

+1

如果您選中了AutoLayout,那麼應用程序將不會在較低版本的iOS上兼容,並且會崩潰。 –