将UILabel添加到UICollectionView中的特定索引路径

时间:2016-11-17 07:43:41

标签: objective-c uilabel uicollectionviewcell

这是我的代码

- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section{
    return 10;
}

- (__kindof UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath{
    CollectionViewCell *cell=[collectionView dequeueReusableCellWithReuseIdentifier:@"dfdsfs" forIndexPath:indexPath];

    if (indexPath.item == 0) {
        UILabel *label = [[UILabel alloc]initWithFrame:CGRectMake(10, 10, 100, 50)];
        label.text=[NSString stringWithFormat:@"this is item %ld", (long)indexPath.item];
        [cell.contentView addSubview:label];
        cell.contentView.backgroundColor = [UIColor greenColor];

        NSLog(@"im @ zero");

    } else {
        NSLog(@"im here %ld", (long)indexPath.item);
        cell.contentView.backgroundColor = [UIColor yellowColor];

    }

    return cell;
}

我希望仅在索引路径0处添加标签。 我遇到问题,因为标签也出现在其他索引路径中..

1 个答案:

答案 0 :(得分:0)

在您的情况下,在if条件中,您还可以添加:

label.tag = 1000; // or other number

而且,在其他地方添加:

[cell.contentView viewWithTag:1000].hidden = YES;

问题是indexPath.item == 0的单元格可能会被重用于其他索引路径,并且仍然可见。

希望它有意义。