【发布时间】:2010-12-31 03:03:24
【问题描述】:
我有一个带有一个视图和一个子视图的视图控制器。当设备方向更改时,视图会自动重绘,但子视图不会。如果我明确地执行 [subview setNeedsDisplay] 它会重绘,但我没有一个合乎逻辑的位置来将该调用放入我的代码中。而且,由于我不必明确告诉视图重绘,所以告诉子视图重绘似乎违反直觉。有没有办法让子视图在视图重绘时自动重绘?
【问题讨论】:
标签: ios uiview orientation device
我有一个带有一个视图和一个子视图的视图控制器。当设备方向更改时,视图会自动重绘,但子视图不会。如果我明确地执行 [subview setNeedsDisplay] 它会重绘,但我没有一个合乎逻辑的位置来将该调用放入我的代码中。而且,由于我不必明确告诉视图重绘,所以告诉子视图重绘似乎违反直觉。有没有办法让子视图在视图重绘时自动重绘?
【问题讨论】:
标签: ios uiview orientation device
我发现以下工作。如果这不是最好的方法,请提供更好的方法。
在subview.m 文件中的initWithFrame: 方法中包含以下内容
self.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
self.contentMode = UIViewContentModeRedraw;
尽管这很有效并且非常适合我的代码,但我不明白为什么子视图需要设置这些属性而视图不需要。
【讨论】:
Swift 3/iOS10 语法:
self.autoresizingMask = [.flexibleWidth, .flexibleHeight]
self.contentMode = .redraw
【讨论】: