在我的应用程序中,在故事板中,我有一个带有很多表格视图单元格的屏幕。
例如,在前两个中,当用户触摸其中一个(进行选择)时,我需要移动复选标记。
有没有简单的方法可以做到这一点,例如插座连接?或者怎么可能做?
谢谢。
在我的应用程序中,在故事板中,我有一个带有很多表格视图单元格的屏幕。
例如,在前两个中,当用户触摸其中一个(进行选择)时,我需要移动复选标记。
有没有简单的方法可以做到这一点,例如插座连接?或者怎么可能做?
谢谢。
查看 Apple 关于在 UITableView 中管理选择的文档。didSelectRowAtIndexPath
基本上,您将在表格视图的方法中协调先前选择的单元格(删除复选标记附件)和当前选定的单元格(添加复选标记附件)的附件视图。
这是一个粗略的实现,假设您有一个可用数组和一个选定taskTypes
属性。currentTaskType
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
[tableView deselectRowAtIndexPath:indexPath animated:NO];
NSInteger taskTypeIndex = [taskTypes indexOfObject:[self currentTaskType]];
if ( taskTypeIndex == [indexPath row] )
{
return;
}
NSIndexPath *oldIndexPath = [NSIndexPath indexPathForRow:taskTypeIndex inSection:0];
UITableViewCell *newCell = [tableView cellForRowAtIndexPath:indexPath];
UITableViewCell *oldCell = [tableView cellForRowAtIndexPath:oldIndexPath];
if ( [newCell accessoryType] == UITableViewCellAccessoryNone )
{
[newCell setAccessoryType:UITableViewCellAccessoryCheckmark];
[self setCurrentTaskType:[taskTypes objectAtIndex:[indexPath row]]];
}
if ( [oldCell accessoryType] == UITableViewCellAccessoryCheckmark )
{
[oldCell setAccessoryType:UITableViewCellAccessoryNone];
}
}