Код реструктуризации из 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;
}
Другие вопросы по тегам