0
我有一個包含UICollectionView
的視圖控制器。它重新使用爲原型單元格指定的標識符ValveCell
。它使用名爲ValveViewCell的UICollectionViewCell的自定義子類。如何根據給定值更改UICollectionViewCell的背景顏色
我已經在使用Storyboard的原型單元上放了幾個文本標籤,我可以得到不同的值以顯示在多個單元格中沒有問題。目前有4個單元,顯示來自4個不同閥門的信息。
我想要做的只是改變單元的背景顏色,取決於閥門是打開還是關閉(我可以成功測試的一個布爾值)。
我使用這個代碼:
- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath {
ValveViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"ValveCell" forIndexPath:indexPath];
Valve *valve = [valveArray objectAtIndex:indexPath.row];
cell.valveID.text = [valve.valveID stringValue];
cell.valveLabel.text = valve.valveLabel;
cell.valveStatus.text = valve.status;
if ([valve isOn]) {
[cell setBackgroundColor:[UIColor greenColor]];
} else {
[cell setBackgroundColor:[UIColor redColor]];
}
return cell;
}
的問題是,它改變背景顏色,但它改變了每一個細胞的背景顏色,而不只是當前單元格中。有任何想法嗎?提前致謝!
你是什麼意思由當前單元?它選擇了細胞嗎? –
'[cell.contentView setBackgroundColor:[UIColor greenColor]];' – Fabian
我的意思是,當它遍歷數組中的每個項目時,它應根據爲特定單元格設置的閥門來更改特定UICollectionViewCell的顏色。事實證明,它實際上與UICollectionViewCell根本沒有任何關係,它是基於邏輯的一個壞的價值。由於該值實際上總是返回零,因此它將每個單元格更改爲相同的顏色。 – fuddus