0

我正在为我的通用应用程序使用 UICollectionView。在每个集合视图单元格内,我都有一个自定义视图,它最终包含一个图像。每个单元格都代表一张扑克牌,因此当点击它时,它会从前向后翻转。我遇到的问题是当我放大该子视图的大小时。如果我在牢房内让它变小,那么一切都很好。没有任何类型的减速。如果我然后将该子视图放大到更大,那么就会出现严重的放缓。不仅在我从上到下滚动浏览集合视图时,而且在我点击单个单元格时也是如此。当一行单元格来自屏幕外时,就会发生滞后。当我点击一张“卡片”并且它从前向后翻转时,也会有延迟。

这个问题似乎只存在于 iPad 版本的应用程序上。当我在我的 iPhone 上运行它时,延迟完全没有问题。

有什么理由说明为什么会发生这种情况?

编辑以添加代码:

- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView
                  cellForItemAtIndexPath:(NSIndexPath *)indexPath
{

    UICollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"Card" forIndexPath:indexPath];

    Card *card = [self.game getCardFromPlayAtIndex:indexPath.item];

    [self updateCell:cell usingCard:card withAnimation:NO];


    return cell;
}

上面使用的抽象方法:

- (void)updateCell:(UICollectionViewCell *)cell usingCard:(Card *)card withAnimation:(BOOL)isAnimated
{
    // Using introspection to make sure that our cell is a PlayingCardCollectionViewCell
    if ([cell isKindOfClass:[PlayingCardCollectionViewCell class]]) {

        // If it is we an take that cell and cast it to a PCCVC and then pull out it's
        // outlet for the PlayingCardView
        PlayingCardView *playingCardView = ((PlayingCardCollectionViewCell *)cell).playingCardView;

        if ([card isKindOfClass:[PlayingCard class]]) {
            PlayingCard *playingCard = (PlayingCard *)card;

            playingCardView.rank = playingCard.rank;
            playingCardView.suit = playingCard.suit;


            playingCardView.faceUp = playingCard.isFaceUp;

            playingCardView.alpha = playingCard.isUnplayable ? 0.3 : 1.0;
        }

    }

}
4

0 回答 0