当设备方向改变时,导致子视图重绘的正确方法是什么?

时间:2010-12-31 03:03:25

标签: ios uiview orientation device

我有一个带有视图和一个子视图的视图控制器。当设备方向改变时,视图会自动重绘,但子视图不会。如果我明确地执行[subview setNeedsDisplay]它会重绘,但我没有合理的位置将该调用放入我的代码中。并且,由于我不必明确告诉视图重绘,因此告诉子视图重绘似乎是违反直觉的。有没有办法在视图重绘时自动重绘子视图?

2 个答案:

答案 0 :(得分:6)

我发现以下作品。如果这不是最好的方法,那么请给出一个更好的方法。

subview.m方法

中的initWithFrame:文件中包含以下内容
self.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
self.contentMode = UIViewContentModeRedraw;

尽管这很适用于我的代码,但我不明白为什么子视图需要这些属性设置,但视图却没有。

答案 1 :(得分:0)

Swift 3 / iOS10语法:

    self.autoresizingMask = [.flexibleWidth, .flexibleHeight]
    self.contentMode = .redraw