UILabel overloading in UICollectionView

后端 未结 2 660
臣服心动
臣服心动 2021-01-23 19:44

I am using UICollectionView. in collection view label is overload every time i am using this code

- (UICollectionViewCell *)collectionView:(UICollec         


        
2条回答
  •  小蘑菇
    小蘑菇 (楼主)
    2021-01-23 20:05

    The cell will get dequeued using UICollectionView's recycler - the label itself stays at the recycled cell, so there's no need in re-allocating it, you just need to find where you placed it:

    #define LABEL_TAG 100001
    
    - (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath{
    
        UICollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"cellIdentifier" forIndexPath:indexPath];
    
        UILabel *label = (UILabel*)[cell.contentView viewWithTag:LABEL_TAG];
    
        if (!label) {
            label = [[UILabel alloc] initWithFrame:CGRectMake(5.0, 90.0,90.0, 21.0)];
            label.textColor = [UIColor redColor];
            label.backgroundColor = [UIColor clearColor];
            label.font = [UIFont boldSystemFontOfSize:12];
            label.textColor = [UIColor colorWithRed:46.0/255.0 green:63.0/255.0 blue:81.0/255.0 alpha:1.0];
            label.tag = LABEL_TAG;
            [cell.contentView addSubview:label];
        }
    
        label.text = [NSString stringWithFormat:@"%@",[arrImages objectAtIndex:indexPath.row]];
        return cell;
    }
    

提交回复
热议问题