嘿伙计
在加载时调用以下方法,它的作用是使所有单元格的accesoryType为CheckMark。
- (UITableViewCellAccessoryType)tableView:(UITableView *)tableViewaccessoryTypeForRowWithIndexPath:(NSIndexPath *)indexPath
{
返回UITableViewCellAccessoryCheckmark;
}
我想编写一个完全相同的IBAction,但只需点击一下按钮而不是加载。请帮忙!
谢谢:)
答案 0 :(得分:0)
如果要在按下按钮时更改附件类型的单元格,则必须重新加载受影响的行。在表视图控制器类中创建一个实例变量来保存活动的附件类型,并在-tableView中检查它:cellForRowAtIndexPath:方法:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell *cell;
// ...
[cell setAccessoryType:[self cellAccessoryType]];
return cell;
}
然后,将按钮的“内部触摸”操作设置为以下内容:
- (IBAction)changeAccessories:(UIButton *)sender
{
UITableViewCellAccessoryType accessoryType;
if (/*condition*/) {
accessoryType = UITableViewCellAccessoryTypeCheckmark;
} else {
accessoryType = UITableViewCellAccessoryTypeNone;
}
[self setCellAccessoryType:accessoryType];
[[self tableView] reloadData];
}
但是,调用-reloadData
是一种非常简单的做事方式。要获得更顺畅的解决方案,请查看-reloadRowsAtIndexPaths:withRowAnimation:。