订单管理那个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];
}
}
Je pense que vous feriez mieux de définir une classe distincte pour les cellules avec des points rouges et d'essayer de ne pas créer de code de vue dans le contrôleur.
Comment personnaliser tableviewCell, vous pouvez vous référer à ce blog : http://www.hcios.com/archives/460
Il est recommandé d'ajouter ce point rouge à l'avance. Contrôlez ensuite l'affichage et le masquage dans cellForRowAtIndexPath.
Où avez-vous attribué la valeur à result.textLabel.text ? Avant d'exécuter [result.textLabel.text isEqualToString:@"Order Management"], aucune opération d'affectation n'est visible dans le code que vous avez donné, on suppose donc que cela est dû à un mauvais ordre d'affectation et de jugement.