【发布时间】:2013-03-30 23:13:46
【问题描述】:
这是我正在使用的代码:
-(void)viewDidLayoutSubviews{
CGSize screenSize = [[UIScreen mainScreen] bounds].size;
if (screenSize.height <= 480.0f) {
self.img.frame = CGRectMake(21, 20, 280, 275);
self.text.frame = CGRectMake(21, 20, 280, 275);
self.decrease.frame= CGRectMake(55, 308, 39, 39);
self.add.frame = CGRectMake(55, 308, 39, 39);
self.increase.frame =CGRectMake(55, 308, 39, 39);
}
else{
self.img.frame = CGRectMake(21, 20, 280, 400);
self.text.frame = CGRectMake(21, 20, 280, 400);
self.decrease.frame= CGRectMake(55, 308, 39, 39);
self.add.frame = CGRectMake(55, 308, 39, 39);
}
}
我正在使用相同的代码(在 viewDidLayoutSubviews 之外)来更改框架,并且效果很好。 我的问题是 viewDidLayoutSubviews 中的代码不起作用。它不会在加载视图时改变帧大小或位置。有什么建议吗?
【问题讨论】:
-
我不确定,但是一旦创建和加载视图,您就无法重新构建视图。
-
我不明白,例如,我使用相同的代码为“文本”UITextView 的高度设置动画。
-
您能否编辑您的帖子以显示您如何执行 viewDidLayoutSubviews,因为它看起来没有被调用。您还应该在其中放置一个 NSLog 或 printF 或断点以确保它确实是。
-
我就照着用吧,可能是新手的错误,不知道应该怎么执行。
-
stackoverflow.com/a/15242064/1827583 这对我现在有用;
标签: objective-c cocoa-touch ios6 interface-builder autolayout