0
嘗試清理一些代碼並遇到問題。我有一個1-5的排名出現在uitableviewcell中。該單元格有5個圖像視圖指向星形圖像。有一個starYellow.png和starGrey.png。如果排名是3/5,則單元格應將star1,star2,star3設置爲starYellow.png和star4,star5以starGrey.png。在循環中動態引用propertyName + 1
我遇到了引用屬性星%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"]]; }
}
}
}
感謝。
也做到了,謝謝!我不知道你可以參考這樣的屬性。改變了objectAtIndex:我到i-1來處理循環的正確邊界,並且它實現了這個技巧。 – tknp