2013-08-04 132 views
-1

所以現在我想移動按鈕的位置,如果它是一個iPhone 5的屏幕或沒有,但我無法弄清楚如何移動按鈕,現在我有一個「if語句」,可以圖如果它是iPhone 5或不是,但我不知道如何在聲明中移動我的按鈕。看看我的代碼。以編程方式移動UIButton?

.H

-(IBAction)randomButton; 
//the button i want to move 

.M提前

- (void)viewDidLoad 
{ 

[super viewDidLoad]; 

if (IS_IPHONE_5) { 

//I don't know how to move the button in here. 

} 

} 

感謝。

+1

如果您以編程方式移動按鈕只是爲了適應不同的屏幕尺寸或高寬比,那麼您正在爲自己工作。這正是spring-and-struts(pre-iOS 6)和自動佈局(iOS 6及以上)機制的作用。如果你從頭開始學習自動佈局,而不是使用spring-and-struts;這是蘋果希望你去的方式。嘗試看看這個介紹:http://www.raywenderlich.com/20881/beginning-auto-layout-part-1-of-2 – davidf2281

回答

0

合適的地方把這個程序佈局無論是在layoutSubviews方法(如果,例如,視圖控制器的根視圖是一個自定義子類),或在您的視圖控制器類的viewDidLayoutSubviews方法。在這兩種這些方法,你可以通過修改其框架,像設置按鈕的位置和大小:

_theButton.frame = /*whatever*/ 

如果你想改變,而無需修改按鈕的大小按鈕的位置可以調節按鈕的center而不是它frame,但是通常是如果你正在做的programatic佈局,你想在同一個地方設置位置和大小。

+0

因此,我把viewDidLayoutSubviews方法,但是當我把_myButton(_randomButton)在那裏它說這是一個未申報的標識符。 – user2600115

+0

這聽起來像你沒有在你的視圖控制器類中的_randomButton實例變量。你應該發佈你的視圖控制器的'@ interface'部分,以便我們可以看到你的按鈕是如何聲明的。 –

0

如果您需要更復雜的佈局,您還可以使用2個XIB文件,一個用於iPhone 5,一個用於iPhone 3/4。我通常這樣做,因爲我總是可以看到它會看起來像什麼,沒有猜測或試驗和錯誤。