我想在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类上尝试在viewFormatting
内调用相同的方法initWithFrame:
时,按钮/标签框架不会调整大小。我也尝试在layoutSubviews
内调用函数。我在NSLog
内放了一个viewFormatting
,所以我知道它被正确调用,但按钮/标签框架没有改变。
注意:在这两种情况下,我都在XIB文件中创建了出口。
非常感谢任何帮助!
答案 0 :(得分:0)
更新:感谢@nburk我意识到在我的xib文件上检查了使用AutoLayout。删除后,上面的代码完美无缺。
我会把它留给任何需要样品的人。
答案 1 :(得分:0)
添加此方法: - (void)viewDidLayoutSubviews { [super viewDidLayoutSubviews]; [self viewFormatting]; }
viewDidLayoutSubviews会自动调用。