>我发现属性布局属性类的可用性是 sdk 10 或更高版本,但我写
+ (Class)layoutAttributesClass
{
return [MyCollectionViewLayoutAttributes class];
}
在我的自定义UICollectionViewFlowLayout类中,当我在手机上测试(SDK 9)时,这个函数 called.so 如何理解SDK的可用性以及何时调用这个函数?提前谢谢。
文档具有误导性。自引入 iOS 6.0 以来,+[UICollectionViewLayout layoutAttributesClass]
方法一直得到公开支持UICollectionViewLayout
。
类属性是在 iOS 10 发布的 Xcode 8 中引入的。当时,layoutAttributesClass
被更改为类属性,而不仅仅是类方法。此更改意味着它作为类属性而不是类方法导入到 Swift 中。
在 Objective-C 中,你仍然必须将其作为类方法覆盖。您编写的代码在 6.0 以来的所有 iOS 版本中都是正确的。
此属性在 iOS 8 或 9 中可用,但在 iOS 10 中不可用。我认为您可以从iOS 8及更高版本实现这一点。
下面是用于确定类在 SDK 中是否可用的代码
if ([UICollectionViewLayoutAttributes class])
{
//Write your code here that you want when the class is available for that sdk.
}