ios - 当设备方向发生变化时,导致 subview 重绘的正确方法是什么?

标签 ios uiview orientation device

我有一个带有一个 View 和一个 subview 的 View Controller 。当设备方向更改时, View 会自动重绘,但 subview 不会。如果我明确执行 [subview setNeedsDisplay] 它会重绘,但我没有一个逻辑位置可以将该调用放入我的代码中。而且,由于我不必明确告诉 View 重绘,所以告诉 subview 重绘似乎是违反直觉的。有没有办法让 subview 在 View 重绘时自动重绘?

最佳答案

我发现以下内容有效。如果这不是最好的方法,请有人提供更好的方法。

subview.m 文件的 initWithFrame: 方法中包含以下内容

self.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
self.contentMode = UIViewContentModeRedraw;

尽管这有效并且非常适合我的代码,但我不明白为什么 subview 需要设置这些属性,而 View 不需要。

关于ios - 当设备方向发生变化时,导致 subview 重绘的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4567807/

相关文章:

ios - avconv - 根据元数据自动改变方向

ios - 动画约束时高度 anchor 的自动布局错误

ios - 动态调整大小 "container"UIView

ios - 在 ScrollView 中定义位置后更改设备方向时,Swift/SwitUI 应用程序崩溃

android - 对 Android 设备使用 configChanges ="orientation"有哪些优点和缺点?

android - 支持 Honeycomb 中的两种横向方向

ios - 无法在 iOS 企业应用程序中连接到 example.com

ios - WatchOS 4 未接收心率样本?

iphone - AFNetworking:返回 200 且无内容时运行失败 block

ios - View 卡在 MapView 后面