[英]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.