Код реструктуризации из PSTCollectionView в UICollectionView
Я полностью удалил PSTCollectionView
из моего проекта, в какой-то момент я получаю следующую ошибку, PSTCollectionViewItemTypeCell
не найдено. Я знаю, что мне нужно заменить его на что-то доступное в UICollectionView
но я не нашел это на себе.
Кто-нибудь испытывал оба (PSTCollectionView/UICollectionView
) тогда, пожалуйста, предложите мне альтернативу для этого мира кода.
Это редкий вопрос по сравнению с iOS 6.0 и более поздними версиями - люди могут перейти на UICollectionView
плавно. Тем не менее, я работаю над старым проектом, который должен быть полностью реструктурирован для iOS 9.0.
Пожалуйста помоги.
Вот проблемный код:
- (UICollectionViewLayoutAttributes *)layoutAttributesForItemAtIndexPath:(NSIndexPath *)indexPath
{
UICollectionViewLayoutAttributes *attributes = (UICollectionViewLayoutAttributes *)[super layoutAttributesForItemAtIndexPath:indexPath];
if ([attributes representedElementCategory] == PSTCollectionViewItemTypeCell) {
//some good code.
}
return attributes;
}
1 ответ
Вы можете видеть из PSTCollectionView
хранилище, которое PSTCollectionViewItemTypeCell
является членом PSTCollectionViewItemType
перечисление:
typedef NS_ENUM(NSUInteger, PSTCollectionViewItemType) {
PSTCollectionViewItemTypeCell,
PSTCollectionViewItemTypeSupplementaryView,
PSTCollectionViewItemTypeDecorationView
};
Это по сути эквивалент UICollectionElementCategory
:
typedef enum {
UICollectionElementCategoryCell,
UICollectionElementCategorySupplementaryView,
UICollectionElementCategoryDecorationView
} UICollectionElementCategory;
Это должен быть просто случай замены одного на другой:
- (UICollectionViewLayoutAttributes *)layoutAttributesForItemAtIndexPath:(NSIndexPath *)indexPath
{
UICollectionViewLayoutAttributes *attributes = (UICollectionViewLayoutAttributes *)[super layoutAttributesForItemAtIndexPath:indexPath];
if ([attributes representedElementCategory] == UICollectionElementCategoryCell) {
//some good code.
}
return attributes;
}