いくつかのコードをクリーンアップしようとしていますが、そうすると問題が発生します。uitableviewcell に表示される 1 ~ 5 のランキングがあります。セルには、星の画像を指す 5 つの画像ビューがあります。starYellow.png と starGrey.png があります。ランキングが 3/5 の場合、セルは star1、star2、star3 を starYellow.png に、star4、star5 を starGrey.png に設定する必要があります。
プロパティ star%i の参照に問題があります。i はループ 1 ~ 5 の繰り返しです。[cell setValue:starYellow forKey:[NSString stringWithFormat:@"star%i.image", i]]; のようなことを行う方法がわかりません。
これが最適化したいコードです..
if (book.ratingOnline) {
[cell.ratingView.layer setOpacity:1.0f];
for (int i = 1; i <= 5; i++) {
if (i == 1) {
if (book.ratingOnline >= i) { [cell.star1 setImage:[UIImage imageNamed:@"starYellow.png"]]; }
else { [cell.star1 setImage:[UIImage imageNamed:@"starGrey.png"]]; }
}
else if (i == 2) {
if (book.ratingOnline >= i) { [cell.star2 setImage:[UIImage imageNamed:@"starYellow.png"]]; }
else { [cell.star2 setImage:[UIImage imageNamed:@"starGrey.png"]]; }
}
else if (i == 3) {
if (book.ratingOnline >= i) { [cell.star3 setImage:[UIImage imageNamed:@"starYellow.png"]]; }
else { [cell.star3 setImage:[UIImage imageNamed:@"starGrey.png"]]; }
}
else if (i == 4) {
if (book.ratingOnline >= i) { [cell.star4 setImage:[UIImage imageNamed:@"starYellow.png"]]; }
else { [cell.star4 setImage:[UIImage imageNamed:@"starGrey.png"]]; }
}
else if (i == 5) {
if (book.ratingOnline >= i) { [cell.star5 setImage:[UIImage imageNamed:@"starYellow.png"]]; }
else { [cell.star5 setImage:[UIImage imageNamed:@"starGrey.png"]]; }
}
}
}
ありがとう。