数日間悩まされているiPhoneアプリの問題がありますが、これほど難しいことではないように思われるので、明らかな何かが欠けていると確信しています. 「同様の」トピックに関するフォーラムの議論をたくさん調査しましたが、具体的にこの問題に実際に対処しているものはありません。
明確にするために、私が調査する必要があるドキュメントまたはその他のソースがある場合は、正しい方向に向けてください。
ここに行きます...
テーブル (uitableview) 内でユーザーに表示するアイテムのリストがあります。各項目のセル (uitableviewcell) はカスタムで、2 つの画像ボタン (uibuttons: 緑と赤) が含まれています。予想どおり、テーブル内の各項目について、ユーザーは任意のボタンをクリックできます。ボタンの monitoringRequestType というパラメーターに基づいて、ボタンは別のプロセスを呼び出してサーバーを更新します。状態が「承認済み」の場合、画像はそれぞれ「承認済み」と「却下」に変わります。したがって、赤いボタンをクリックすると、サーバーは状態を「拒否済み」に更新し、画像は「承認済み」と「すでに拒否済み」に変わります。シンプルですね。
だから、ここに問題があります:
拒否ボタンをクリックすると、「承認済み」の画像が「承認済み」の画像の上に表示されます (両方の画像が表示されます)。一方、「承認済み」の画像は正常に機能します。ちゃんと):
CellForRow:
if(indexPath.section==0){
NSDictionary *dict=[saveJson objectAtIndex:indexPath.row];
NSString* sMonitoringType = [dict valueForKey:@"monitoringType"];
UIButton *button1= [[UIButton alloc] initWithFrame:CGRectMake(230,10,40,40)];
UIButton *button2= [[UIButton alloc] initWithFrame:CGRectMake(280,10,40,40)];
if([sMonitoringType compare:@"Pending"] == NSOrderedSame){
[button1 setImage:[UIImage imageNamed:@"approve"]
forState:UIControlStateNormal];
[button1 addTarget:self
action:@selector(greenButtonPressed:withEvent:)
forControlEvents:UIControlEventTouchUpInside];
button1.tag= indexPath.row;
[button2 setImage:[UIImage imageNamed:@"reject"]
forState:UIControlStateNormal];
[button2 addTarget:self
action:@selector(redButtonPressed:withEvent:)
forControlEvents:UIControlEventTouchUpInside];
button2.tag= indexPath.row;
} else if([sMonitoringType compare:@"Approved"] == NSOrderedSame){
[button1 setImage:[UIImage imageNamed:@"alreadyapproved"]
forState:UIControlStateNormal];
[button2 setImage:[UIImage imageNamed:@"reject"]
forState:UIControlStateNormal];
[button2 addTarget:self
action:@selector(redButtonPressed:withEvent:)
forControlEvents:UIControlEventTouchUpInside];
button2.tag= indexPath.row;
} else if([sMonitoringType compare:@"Rejected"] == NSOrderedSame){
[button1 setImage:[UIImage imageNamed:@"approve"]
forState:UIControlStateNormal];
[button2 setImage:[UIImage imageNamed:@"alreadyrejected"]
forState:UIControlStateNormal];
[button1 addTarget:self
action:@selector(greenButtonPressed:withEvent:)
forControlEvents:UIControlEventTouchUpInside];
button1.tag= indexPath.row;
}
[cell addSubview:button1];
[cell addSubview:button2];
[button1 release];
[button2 release];
}
return cell;
}