[英]Change UIButton frame inside UIView
我想在iPhone 4 / 4s屏幕上顯示不同的UIButton
/ UILabel
/ UISlider
尺寸。 在父ViewController viewDidAppear:
方法中,我能夠通過調用viewFormatting
函數來設置新的按鈕框架。
- (void) viewFormatting
{
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone)
{
CGSize result = [[UIScreen mainScreen] bounds].size;
//iPhone 4
if (result.height == 480)
{
self.myButton.frame = CGRectMake(x, y, width, height);
self.myLabel.frame = CGRectMake(x, y, width, height);
//etc.
}
}
}
但是,當我嘗試在單獨的UIView類上的initWithFrame:
調用相同的viewFormatting
方法時,按鈕/標簽框架不會調整大小。 我還嘗試在layoutSubviews
內部調用該函數。 我將NSLog
放在viewFormatting
因此我知道它被正確調用了,但是按鈕/標簽框架沒有改變。
注意:在這兩種情況下,我都在XIB文件中創建了出口。
任何幫助是極大的贊賞!
更新:感謝@nburk,我意識到在我的xib文件中檢查了AutoLayout的使用。 刪除后,上面的代碼可以完美地工作。
我將其留給需要樣品的任何人。
添加此方法:-(void)viewDidLayoutSubviews {[super viewDidLayoutSubviews]; [self viewFormatting]; }
viewDidLayoutSubviews會自動調用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.