我有一个带有视图和一个子视图的视图控制器。当设备方向改变时,视图会自动重绘,但子视图不会。如果我明确地执行[subview setNeedsDisplay]它会重绘,但我没有合理的位置将该调用放入我的代码中。并且,由于我不必明确告诉视图重绘,因此告诉子视图重绘似乎是违反直觉的。有没有办法在视图重绘时自动重绘子视图?
答案 0 :(得分:6)
我发现以下作品。如果这不是最好的方法,那么请给出一个更好的方法。
在subview.m
方法
initWithFrame:
文件中包含以下内容
self.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
self.contentMode = UIViewContentModeRedraw;
尽管这很适用于我的代码,但我不明白为什么子视图需要这些属性设置,但视图却没有。
答案 1 :(得分:0)
Swift 3 / iOS10语法:
self.autoresizingMask = [.flexibleWidth, .flexibleHeight]
self.contentMode = .redraw