UITableViewCell禁用单元格,然后重新启用和更新而不重新加载视图

时间:2012-04-05 14:48:10

标签: objective-c ios uitableview

我发现了很多问题,几乎问我到底是怎么回事,但却一直无法实现我自己的解决方案。

我的UITableViewController中有2个部分,到目前为止一切运行良好。我有一个AlarmEnabled UISwitch和一个AlarmDate单元,它会拉出一个UIActionSheet,以便人们可以选择开火日期等。我试图在一个否定AlarmEnabled UISwitch时禁用/灰显AlarmDate单元格(单元格0) “即时的”。此执行,但仅当我a)否定UISwitch b)取消/保存UIButton退出视图时c)重新进入视图。

我到目前为止尝试了tableView:reloadRowsAtIndexPath:方法如下:

NSIndexPath *tempIndexPath = [NSIndexPath indexPathForRow:0 inSection:0];
NSArray *tempIndexPathArray = [[NSArray alloc] initWithObjects:tempIndexPath, nil];
[self.tableView reloadRowsAtIndexPaths:tempIndexPathArray withRowAnimation:UITableViewRowAnimationNone];
[tempIndexPathArray release];

也许是因为我与iOS编程的开关关系,我只是误解了应该放置代码的位置(当前放在AlarmEnabled UISwitch附件的选择器中),但是它没有做我想要的事情(但是如果使用得当,它应该听起来像。)

我想我会尝试增加我的认知,并在UISwitch的选择器中尝试类似下面的内容,

#define NOT(a)  !a
....
UITableViewCell *tempCellAlarmDate = [self.tableViewController.tableView cellForRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:0]];
tempCellAlarmDate.userInteractionEnabled = NOT(tempCellAlarmDate.userInteractionEnabled);
// forget transparency for now.
//tempCellAlarmDate.alpha = 0.0;

..但是在我的头骨中为发电机提供动力的快速啮齿动物啮齿动物不赞成这个代码,因此我的实时userInteractionEnabled切换的梦想未实现。

感谢任何建议: - )

由于

SC。

1 个答案:

答案 0 :(得分:0)

我错过了你在单元格上调用setEnabled:方法的地方。或者您是否使用其他方法禁用它?根据我的经验,setEnabled:NO实时禁用一个单元格,并且setEnabled:YES将其恢复。也许我错过了什么?