gpt4 book ai didi

iPhone :UITableView CellAccessory Checkmark

转载 作者:IT老高 更新时间:2023-10-28 11:47:05 25 4
gpt4 key购买 nike

在 iPhone 应用程序中单击表格 View 单元格我想显示表格 View 单元格附件类型复选标记为 didSelectRowAtIndexPath 我正在编写代码

if(indexPath.row ==0)
{
[tableView cellForRowAtIndexPath:indexPath].accessoryType=UITableViewCellAccessoryCheckmark;
}

并显示复选标记。

但在我的情况下,我不允许用户一次只检查单元格,这意味着如果用户选择其他行,则应该检查该行,而之前检查的应该取消选中

我怎样才能做到这一点?

最佳答案

在实例变量中跟踪检查了哪一行。当用户选择新行时,首先取消选中之前选中的行,然后检查新行并更新实例变量。

这里有更多细节。首先添加一个属性来跟踪当前选中的行。如果这是一个 NSIndexPath 是最简单的。

@interface RootViewController : UITableViewController {
...
NSIndexPath* checkedIndexPath;
...
}

...
@property (nonatomic, retain) NSIndexPath* checkedIndexPath;
...

@end

在您的 cellForRowAtIndexPath 中添加以下内容:

if([self.checkedIndexPath isEqual:indexPath])
{
cell.accessoryType = UITableViewCellAccessoryCheckmark;
}
else
{
cell.accessoryType = UITableViewCellAccessoryNone;
}

您如何编写 tableView:didSelectRowAtIndexPath: 将取决于您想要的行为。如果必须始终检查一行,也就是说,如果用户单击已检查的行,请使用以下内容:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
// Uncheck the previous checked row
if(self.checkedIndexPath)
{
UITableViewCell* uncheckCell = [tableView
cellForRowAtIndexPath:self.checkedIndexPath];
uncheckCell.accessoryType = UITableViewCellAccessoryNone;
}
UITableViewCell* cell = [tableView cellForRowAtIndexPath:indexPath];
cell.accessoryType = UITableViewCellAccessoryCheckmark;
self.checkedIndexPath = indexPath;
}

如果您想让用户能够通过再次单击该行来取消选中该行,请使用以下代码:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
// Uncheck the previous checked row
if(self.checkedIndexPath)
{
UITableViewCell* uncheckCell = [tableView
cellForRowAtIndexPath:self.checkedIndexPath];
uncheckCell.accessoryType = UITableViewCellAccessoryNone;
}
if([self.checkedIndexPath isEqual:indexPath])
{
self.checkedIndexPath = nil;
}
else
{
UITableViewCell* cell = [tableView cellForRowAtIndexPath:indexPath];
cell.accessoryType = UITableViewCellAccessoryCheckmark;
self.checkedIndexPath = indexPath;
}
}

关于iPhone :UITableView CellAccessory Checkmark,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5959950/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com