我使用UIImageView
显示我的应用的bg。为了支持正确的接口旋转,我编写了layoutSubviews
方法。在这个metod .frame属性正确更改,但当我尝试更改UIImageView
的图像时,就像这样:
view = [self viewWithTag:1002];
((UIImageView *)view).image = [UIImage imageNamed:@"portrait.png"];
没有改变。我做错了什么或者无法在UIImageView
方法中更改layoutSubviews
的图像?
答案 0 :(得分:4)
试试这个
- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation {
// change background here
}
答案 1 :(得分:1)
您可以使用 UIViewController 管理视图的轮播(请务必查看此处的文档:http://developer.apple.com/library/ios/#documentation/uikit/reference/UIViewController_Class/Reference/Reference.html)。如果您为 UIImageView 实现了 UIViewController ,则可以使用viewDidLoad:
方法设置图像。
您不应该覆盖layoutSubviews:
方法来执行此操作。 layoutSubviews:
是按照名称中的说法执行的 - 它应该执行此视图当前具有的任何子视图的定位和大小调整。您不应该重写此方法,除非您想要在子视图中进行一些特殊的自定义布局,并在 UIView 设置为“需要调整大小”时在运行循环中调用。
我强烈建议您从代码中的其他位置设置图像。如果希望在旋转视图时更改图像,可以在 UIViewController 子类的- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation
方法中设置图像。