我的TableView标题上有一个按钮,它是一个空框,按下时,是一个复选标记。我在该标题的单元格上有相同的按钮。所以我基本上想对该部分中的每个单元格执行操作。我正在使用WWDC 2010中的Animating TableView作为我的示例。头对象有一个整数数组,用于跟踪其部分中有多少行。
我不确定从这里开始,如何让自定义UITableViewCell执行我的操作。有什么想法吗?感谢。
到目前为止,我有这样的事情:
- (void)selectAllCheckmarksInSectionHeaderView:(SectionHeaderView *)sectionHeaderView forSection:(NSInteger)section {
SectionInfo *sectionInfo = [self.SectionInfoArray objectAtIndex:section];
int totalRows = [[sectionInfo rowHeights] count];
for (int row = 0; row < totalRows; row++) {
NSIndexPath *path = [NSIndexPath indexPathForRow:(NSUInteger)row inSection:section];
OrderTableViewCell *cell = (OrderTableViewCell *)[_orderTableView cellForRowAtIndexPath:path];
cell.CheckmarkButton.selected = YES;
}
}
但是我的OrderTableViewCell是零。
答案 0 :(得分:0)
要引用位于节标题中的按钮,您必须将其分配给实例变量以保留对它的引用。要获取对部分中所有单元格的引用并更新它们,您需要尝试这样的事情......
CGRect sectionRect = [self.tableView rectForSection:0]; // Rect for first section
NSArray *indexPathsInSection = [self.tableView indexPathsForRowsInRect:sectionRect];
for (NSIndexPath *indexPath in indexPathsInSection)
{
// Obtain the cell at each index path and update its accessory state
UITableViewCell *cell = [self.tableView cellForRowAtIndexPath:indexPath];
cell.accessoryType = UITableViewCellAccessoryCheckmark;
}
当然这是一个过于简单的例子。更灵活的方法是在“选择”某个部分时更新某个模型对象并重新加载该表。然后在-tableView:cellForRowAtIndexPath:
中,您将确定是否应根据整个部分的模型对象勾选某个部分中的单元格。