2017-01-23 77 views
1

我發現財產layoutAttributesClass的可用性SDK 10或更高版本,但是我寫如何使用UICollectionViewLayout財產layoutAttributesClass?

+ (Class)layoutAttributesClass 
{ 
    return [MyCollectionViewLayoutAttributes class]; 
} 
我customed UICollectionViewFlowLayout類

,當我的手機上測試(SDK 9)這個函數是called.so如何理解的可用性sdk和什麼時候會調用這個函數?提前致謝。

回答

1

文檔是誤導性的。自從iOS 6.0引入UICollectionViewLayout以來,+[UICollectionViewLayout layoutAttributesClass]方法已得到公衆支持。

類屬性是在iOS 10中發佈的Xcode 8中引入的。當時,layoutAttributesClass已更改爲類屬性,而不僅僅是類方法。這個改變意味着它作爲類屬性而不是類方法被導入到Swift中。

在Objective-C中,您仍然必須將其覆蓋爲類方法。您自6.0版以來的所有iOS版本都編寫了正確的代碼。

+0

感謝您的幫助! – Gxp

1

此屬性是可以從iOS的8,9但不能從iOS的10.我想你可以從iOS的8和更高版本實現這一點。

0

下面是確定代碼類是否可在SDK或不

if ([UICollectionViewLayoutAttributes class]) 
{ 
//Write your code here that you want when the class is available for that sdk.  
}