UIView种方法setNeedsLayoutsetNeedsDisplay的真正区别是什么?

像往常一样,关于这一点的文件并不清楚.

推荐答案

实际上,文档对此非常清楚:

  • setNeedsLayout将显示布局子视图

    当需要调整视图子视图的布局时,在应用程序的主线程上调用此方法.

  • setNeedsDisplay将需要重新绘制您的视图(drawRect:,依此类推).

    您可以使用此方法或setNeedsDisplayInRect:通知系统需要重新绘制视图的内容.

Ios相关问答推荐

SWIFT根据地球坐标修改 node 旋转

清除/删除 NavigationController 中的多个 ViewController

WatchConnectivity - 从手表配套应用程序在 iOS 设备上启动 AVPlayer

mapView swift 导致警告有网格错误

圆角矩形路径上的蛇形动画

iOS 16.4 更新后 Xcode 14.3 构建错误:找不到 libarclite_iphoneos.a,链接器命令失败

如何在 SwiftUI 的 TabView 中添加底部曲线?

SwiftUI:通过Sheet将数据添加到Realm DB时视图不更新

在向我的 struct 添加属性后获取线程 10:EXC_BAD_ACCESS (code=EXC_I386_GPFLT)

分析应用程序版本时出错 - Apple 提交到store

使用 Vim 代替(或与)Xcode 进行 iOS 开发

如何忽略touch 事件并将它们传递给另一个子视图的 UIControl 对象?

在 Swift 中上传带参数的图像

标题为 UIImage 的导航栏

核心数据 - 无法在路径加载优化模型

Xcode 10.2 无法在 iOS < 10 的模拟器上运行应用程序

命令 /Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang 失败,退出代码为 1

正确使用 Alamofire 的 URLRequestConvertible

如何使用完成按钮制作 UIPickerView?

在 NSUserDefaults 中存储值是否有任何限制?