カスタム UITableViewCell があります。のUIImageView
上に がありUIButton
ます。をクリックすると、ラジオ ボタンUIButton
のようなもののイメージを切り替えることができます。UIImageView
問題は、状態を「YES」に切り替えると、必要な変更を行うサーバーへの呼び出しがあることです。テーブルをリロードしUIImageView
ても、「YES」状態に変わりません。UIButton
状態を「選択済み」に設定しましたが、正常に機能しています。しかし、UIImageView
新しいイメージには変わりません。
更新時に私はこれを取得します:
私が実際にこれをしたいとき:
デフォルトの状態は次のとおりです。
の更新された状態とデフォルトの状態はUIImageView
同じです。
ここで丸いアイコンはUIImageView
で、残りはUIButton
これは私がやろうとしてきたことです:
カスタムではUITableViewCell
:
- (void)setSelected:(BOOL)selected animated:(BOOL)animated
{
self.karmaLogo = [[UIImageView alloc] initWithFrame:CGRectMake(self.karmaButton.frame.size.width - 40, 8, 30, 30)];
[self.karmaLogo setImage:[UIImage imageNamed:@"logo-grey"]];
self.karmaLogo.userInteractionEnabled = NO;
[self.karmaButton addSubview:self.karmaLogo];
}
そしてUITableView
デリゲートで:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
// Creates the required custom cell
if (karmaCheck == 1) // Received from the server
{
cell.karmaButton.highlighted = YES;
cell.karmaButton.selected = YES;
cell.karmaLogo.image = nil;
[cell.karmaLogo setImage:[UIImage imageNamed:@"logo-black"]];
[cell.karmaLogo setNeedsDisplay];
[cell bringSubviewToFront:cell.karmaLogo];
}
else
{
cell.karmaButton.highlighted = NO;
cell.karmaButton.selected = NO;
cell.karmaLogo.image = nil;
[cell.karmaLogo setImage:[UIImage imageNamed:@"logo-grey"]];
[cell.karmaLogo setNeedsDisplay];
[cell bringSubviewToFront:cell.karmaLogo];
}
実行は、必要に応じて if ブロックと else ブロックの両方に入りますが、画像は変更しません。しかし、karmaButton ( UIButton
) の強調表示と選択は正常に機能します。