2011-06-26 8 views
0

私はこの状態にしようとしますが動作しません。 senderlabel = key @ "sender"の場合、すべての行にgreen.pngまたはgrey.pngを使用します。uitableview質問

if (senderLabel.text = [tempMsg objectForKey:@"sender"]) 
    { 
     [cell.msgText setText:[tempMsg objectForKey:@"message"]]; 

     [messTableView setSeparatorStyle:UITableViewCellSeparatorStyleNone]; 
     [cell setSelectionStyle:UITableViewCellSelectionStyleNone]; 

     //[cell setFrame:CGRectMake(0,0, size.width, size.height)]; 
     [cell.msgText setFrame:CGRectMake(15,3, size.width, result)]; 




     UIImage* balloon = [[UIImage imageNamed:@"grey.png"] stretchableImageWithLeftCapWidth:24 topCapHeight:15]; 
     UIImageView *newImage = [[UIImageView alloc] initWithFrame:CGRectMake(5, 5, size.width+10, result+10)]; 
     UIView *newView =[[UIView alloc] initWithFrame:CGRectMake(0.0, 0.0, cell.frame.size.width, cell.frame.size.height)]; 

     [newImage setImage:balloon]; 
     [newView addSubview:newImage]; 
     [cell setBackgroundView:newView]; 

    }else { 
     [cell.msgText setText:[tempMsg objectForKey:@"message"]]; 

     [messTableView setSeparatorStyle:UITableViewCellSeparatorStyleNone]; 
     [cell setSelectionStyle:UITableViewCellSelectionStyleNone]; 

     //[cell setFrame:CGRectMake(0,0, size.width, size.height)]; 
     [cell.msgText setFrame:CGRectMake(15,3, size.width, result)]; //propriété du texte 


     UIImage* balloon = [[UIImage imageNamed:@"green.png"] stretchableImageWithLeftCapWidth:24 topCapHeight:15]; 
     UIImageView *newImage = [[UIImageView alloc] initWithFrame:CGRectMake(5, 5, size.width+10, result+10)]; 
     UIView *newView =[[UIView alloc] initWithFrame:CGRectMake(0.0, 0.0, cell.frame.size.width, cell.frame.size.height)]; 

     [newImage setImage:balloon]; 
     [newView addSubview:newImage]; 
     [cell setBackgroundView:newView]; 

    } 



    return cell; 

} 

答えて

0

if(senderLabel.text = [tempMsg objectForKey:@ "sender"])が正しくありません。比較にはisEqualを使用する必要があります。ここでは、すべての

if ([senderLabel.text isEqual:[tempMsg objectForKey:@"sender"]]) 
0

まず、

if (senderLabel.text = [tempMsg objectForKey:@"sender"]) 

あなたはそれがまったく同じオブジェクトの場合を比較することを、しかし

if (senderLabel.text == [tempMsg objectForKey:@"sender"]) 

なり、比較、代入ではなく、比較を行っています文字列が同じテキストを持っているかどうかをチェックしたい場合は、おそらくあなたが望んでいないメモリ内で、

[string isEqualToString:anotherString] 
+0

THXが、すべて私のデータは緑を使用しています。すべての行で私は別のデータを持っています – XcodeMania

+0

私はindexPath.rowを使用する必要があると思いますがどうですか? – XcodeMania

+0

あなたはUITableViewCellをサブクラス化してそこに独自の背景を追加することができます。バックグラウンドのサイズを変更するには、setFrame:をオーバーライドすることを忘れないでください。 – EmilioPelaez

0

indexpathあなたはこのように使用することができます取得するには:

NSIndexPath *indexpath = [NSIndexPath indexPathForRow:0 inSection:0]; 

との比較のために:

if ([string compare:anotherString] == NSOrderedSame)