Я подклассифицировал класс UICollectionViewLayoutAttributes и добавил несколько настраиваемых свойств.
В моем классе UICollectionViewLayout я переопределяю статическую
+ (Class)layoutAttributesClass
, и я возвращаю свой новый класс атрибутов.
В моем классе UICollectionViewLayout я переопределяю -(NSArray*)layoutAttributesForElementsInRect:(CGRect)rect
, и я устанавливаю значения в пользовательские свойства.
Я могу проверить класс атрибутов прямо там и увидеть, что пользовательские свойства установлены правильно.
Итак, наконец, мне нужно получить эти свойства в UICollectionViewCell, поэтому я переопределяю -(void) applyLayoutAttributes:(UICollectionViewLayoutAttributes *)layoutAttributes
для извлечения значений в пользовательском классе UICollectionViewLayoutAttributes, YET они равны нулю. Как будто я их никогда не ставил.
Все остальные атрибуты работают отлично, включая преобразования и т.д. Так ясно, что я делаю что-то неправильно. Просьба сообщить.
Входит в HeaderFile моего пользовательского класса
@interface UICollectionViewLayoutAttributesWithColor : UICollectionViewLayoutAttributes
@property (strong,nonatomic) UIColor *color;
@end
и вот реализация. Как вы можете видеть, ничего особенного
@implementation UICollectionViewLayoutAttributesWithColor
@synthesize color=_color;
@end