当我选择一行时,会调用此方法:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
[_historyEntryTableView reloadRowsAtIndexPaths:[NSArray arrayWithObject:indexPath]
withRowAnimation:UITableViewRowAnimationFade];
}
从我的cellForRowAtIndexPath,我正在动态设置UILabel的alpha值。
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *Cell = @"StandardCell";
TWHistoryViewStandardCell *cell =
(TWHistoryViewStandardCell *)[tableView dequeueReusableCellWithIdentifier:Cell];
if (cell == nil) {
cell = (TWHistoryViewStandardCell *)[[[NSBundle mainBundle] loadNibNamed:@"HistoryViewStandardCell" owner:self options:nil] objectAtIndex:0];
}
//...
if (currentPick == PickDateFrom) {
cell.hoursLabel.alpha = 1.0;
} else {
cell.hoursLabel.alpha = 0.7;
}
//...
}
如果从我的didSelectRowAtIndexPath方法我在表视图上调用reloadData,该表显示更新的单元格,具有预期的alpha值。但是reloadRowsAtIndexPath没有任何影响。
为什么会发生这种情况?
修改
“Hammer Fixed”通过在reloadRowsAtIndexPath之后调用reloadData:
[_historyEntryTableView reloadRowsAtIndexPaths:[NSArray arrayWithObject:indexPath]
withRowAnimation:UITableViewRowAnimationFade];
[_historyEntryTableView reloadData];
这不是问题的答案,但它现在可以做到。
有人知道是否必须调用单元格中的某些内容来重新呈现alpha值?它只是UILabel的alpha值,因为文本确实正确改变了。
谢谢!