将泛型类类型更改为子类

时间:2017-05-28 20:17:13

标签: ios uicollectionviewcell

我有这个方法:

-(void)handleLongPress:(UILongPressGestureRecognizer *)gestureRecognizer
{
    if (gestureRecognizer.state == UIGestureRecognizerStateBegan) {
        CGPoint p = [gestureRecognizer locationInView:self.collectionView];
        NSIndexPath *indexPath = [self.collectionView indexPathForItemAtPoint:p];
        if (indexPath == nil){
            NSLog(@"couldn't find index path");
        } else {
            UICollectionViewCell* cell = [self.collectionView cellForItemAtIndexPath:indexPath];
                        if ([cell isKindOfClass:[MWGradeCell class]]){
                NSLog(@"Yes");
            //here I would like to get a custom property "cell.gradeLabel.text" that is specific to MWGradeCell
            } else{
               NSLog(@"No");
            }
        }

    } else{
        NSLog(@"ended");
    }

}

它识别UICollectionview的哪个UICollectionviewcell是长按的。 我的UICollectionView是使用不同类型的子类UICollectionViewCells构建的,每个子类都有不同的属性。

现在,我只想获取特定单元格类型的属性,但为了做到这一点,我不知何故需要将已识别的UICollectionViewCell更改为MWGradeCell。

不知道如何。幸运的是,你的人在附近

1 个答案:

答案 0 :(得分:0)

我不确定我是否理解这个问题,但你可以像以下一样投射电话:

MWGradeCell* cell = (MWGradeCell *)[self.collectionView cellForItemAtIndexPath:indexPath];

不记得(MWGradeCell *)是否真的有必要