cari

Rumah  >  Soal Jawab  >  teks badan

ios - 加在tableviewcell 的contentview的label刚开始显示不出来是怎么回事?

订单管理那个cell 加了个红色label。
但是一开始显示不出来,滑动tableview,重新刷新一下,才显示
如图:

代码:

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
    static NSString *identifier = @"tableViewCell" ;
    UITableViewCell *result ;
    result = [tableView dequeueReusableCellWithIdentifier:identifier];
    if (result == nil) {
        result = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:identifier];
    }
    else{
        while ([result.contentView.subviews lastObject] != nil) {
            [[result.contentView.subviews lastObject] removeFromSuperview];
        }
    }
if ([result.textLabel.text isEqualToString:@"订单管理"]){
                UILabel *newMsgLabel = [[UILabel alloc]initWithFrame:CGRectMake(0, 0, 20, 20)];
                newMsgLabel.center = CGPointMake(result.vRightPos - 70, result.vHeight/2);
                newMsgLabel.text = @"1   ";
                [newMsgLabel sizeToFit];
                newMsgLabel.textColor = WHITE_COLOR;
                newMsgLabel.textAlignment = NSTextAlignmentCenter;
                newMsgLabel.autoresizingMask = UIViewAutoresizingFlexibleWidth;
                newMsgLabel.font = TF_FONT_LEVEL_1;
                newMsgLabel.backgroundColor = RED_COLOR;
                newMsgLabel.layer.cornerRadius = newMsgLabel.vHeight/2;
                newMsgLabel.clipsToBounds = YES;
                [result.contentView addSubview:newMsgLabel];
        }
        }
PHPzPHPz2888 hari yang lalu299

membalas semua(3)saya akan balas

  • PHP中文网

    PHP中文网2017-04-17 17:40:27

    Saya fikir anda lebih baik mentakrifkan kelas berasingan untuk sel dengan titik merah dan cuba untuk tidak membuat kod paparan dalam pengawal.

    Bagaimana untuk menyesuaikan tableviewCell, anda boleh rujuk blog ini: http://www.hcios.com/archives/460

    balas
    0
  • 迷茫

    迷茫2017-04-17 17:40:27

    Adalah disyorkan untuk menambah titik merah ini terlebih dahulu. Kemudian kawal paparan dan bersembunyi dalam cellForRowAtIndexPath.

    balas
    0
  • 迷茫

    迷茫2017-04-17 17:40:27

    Di manakah anda memberikan nilai kepada result.textLabel.text? Sebelum melaksanakan [result.textLabel.text isEqualToString:@"Order Management"], tiada operasi penugasan dilihat dalam kod yang anda berikan, jadi diduga ia disebabkan oleh susunan tugasan dan penghakiman yang salah.

    balas
    0
  • Batalbalas