CADisplayLink 的 displayLinkWithTarget:selector: 和 UIScreen 的 displayLinkWithTarget:selector: 有什么区别?

What's the difference between CADisplayLink's displayLinkWithTarget:selector: and UIScreen's displayLinkWithTarget:selector:?

提问人:meisel 提问时间:1/11/2017 更新时间:1/11/2017 访问量:588

问:

CADisplayLink 有这个方法是有道理的,但我很好奇为什么 UIScreen 也会有它。

iOS cadisplay链接

评论


答:

3赞 Léo Natan 1/11/2017 #1

文档指出,屏幕提供的显示链接与该屏幕相关联。但是,从官方文档来看,与任何屏幕都没有明显的关系;显示链接被添加到运行循环中,仅此而已。

在私有标头中更深入地挖掘,有一个 CADisplay 类型的属性,该属性也可用于 UIScreen。因此,看起来,确实,您可以创建特定于屏幕的显示链接。通常在 iOS 和 tvOS 上,只有一个屏幕,但情况并非总是如此(例如将显示器连接到 iOS 设备)。如果你的应用支持外部监视器,并且你发现需要使用显示链接,则应使用该方法。display-[UIScreen displayLinkWithTarget:selector:]

请考虑向 Apple 提交错误报告,并提出文档增强请求,以澄清上述行为。

评论

1赞 dan 1/11/2017
方法上方的注释 确实指定它“为主显示”创建一个新的显示链接对象,该对象是 的显示。Apple 喜欢将有用的信息放在头文件中,并出于某种原因将其排除在文档之外。CADisplayLink.h[UIScreen mainScreen]