我有一個超過200多個單元的UITable。該表格與來自網絡的數據完美配合。現在我需要添加一種方法來更改標籤的背景顏色以與數據匹配(如果值減少,則爲紅色,如果值增加,則爲綠色)。這似乎最初運作良好,但一段時間後,即使值更新正常,顏色也會變爲靜態。下面是我的代碼的例子是在layoutSubviews方法:UITableViewCells中的顏色不會改變
更新
我已經更新的代碼,以顯示我的我的表。請注意,數據被完全分配給單元格。不管價值是多少,幾分鐘後拒絕改變的是單元格的顏色。
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
UILabel* label = [[UILabel alloc] initWithFrame:self.contentView.bounds];
label.tag = 1;
[cell.contentView addSubview:label];
[label release];
}
UILabel *label = (UILabel*)[cell viewForTag:1];
float value = [label.text floatValue];
float newValue = [dataSource objectAtIndex:indexPath.row];
// Get the current value of the cell and compare it with the new value
if(value < newVal)
{
label.backgroundColor = [UIColor greenColor];
}
else if(value > newVal)
{
label.backgroundColor = [UIColor redColor];
}
label.text = [NSString stringWithFormat:@"%d", newValue];
}
爲什麼此代碼在layoutSubviews中?這不會每次都被調用。它應該在cellForRowAtIndexPath中。 – jrturton 2012-04-05 19:32:32
在閱讀下面的答案之後,我將代碼移到了適當的位置。感謝您的注意。 – Seb 2012-04-05 19:52:39