C.J*_*hns 4 iphone accessorytype ios
我一直在试图弄清楚如何在选择单元格时将accessoryType设置为UITableViewCellAccessoryCheckmark,但我很难找到一个合适的例子.
如果你知道如何做到这一点,或者你可以告诉我一个很好的教程.
Mad*_*dhu 10
要将用户限制为仅一个选择,意味着仅创建一个选项的独占列表,您可以按照以下步骤操作;
首先,在.h文件中声明一个全局索引路径,以跟踪已选择的单元格 - >
NSIndexPath *oldIndexPath;
Run Code Online (Sandbox Code Playgroud)
创建单元格时,请务必将附件类型设置为none,以便在看到表格时默认不选择单元格;
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"CellIdentifier"];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"CallIdentifier"];
cell.accessoryType = UITableViewCellAccessoryNone;
}
return cell;
}
Run Code Online (Sandbox Code Playgroud)
最后,在didSelectRowAtIndexPath委托方法中,添加以下代码,该代码将从已选择的单元格中删除复选标记,并为新选择的单元格添加复选标记.
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
if (oldIndexPath==nil) { // No selection made yet
oldIndexPath=indexPath;
[cell setAccessoryType:UITableViewCellAccessoryCheckmark];
}
else {
UITableViewCell *formerSelectedcell = [tableView cellForRowAtIndexPath:oldIndexPath]; // finding the already selected cell
[formerSelectedcell setAccessoryType:UITableViewCellAccessoryNone];
[cell setAccessoryType:UITableViewCellAccessoryCheckmark]; // 'select' the new cell
oldIndexPath=indexPath;
}
}
Run Code Online (Sandbox Code Playgroud)
希望这会成功!:)
| 归档时间: |
|
| 查看次数: |
4713 次 |
| 最近记录: |