我如何使用 UITableViewCellAccessoryCheckmark 检查 uitableview 中的多行
大家好,我知道这是一个常见问题,但请帮助我。我有一个表格视图,在其中显示来自 NSArray 的数据。我想使用 UITableViewCellAccessoryCheckmark 选择多行。但是当我滚动时复选标记消失了。每个人都在谈论可重复使用的电池。我理解这个概念,但无法解决我的问题。所以请有人给我 cellForRowAtIndexPath 和 didSelectRowAtIndexPath 方法的实现,谢谢。很紧急。我用这个代码
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell *cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"cell"];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:@"cell"];
}
cell.textLabel.text = [listData objectAtIndex:indexPath.row];
[cell setAccessoryType:UITableViewCellAccessoryNone];
for (int i = 0; i < selectedIndexes.count; i++) {
NSUInteger num = [[selectedIndexes objectAtIndex:i] intValue];
if (num == indexPath.row) {
[cell setAccessoryType:UITableViewCellAccessoryCheckmark];
// Once we find a match there is no point continuing the loop
break;
}
}
hi everybody i know it's a frequent question but please help me. i have a tableview in which i display data from an NSArray. i want to choose multiple rows with the UITableViewCellAccessoryCheckmark. but when i scroll checkmarks disappear. everybody talk about reusable cell. I understand this concept but can't resolve my problem. So please please can someone give me the implementation of cellForRowAtIndexPath and didSelectRowAtIndexPath methods thank you. It's urgent.I use this code
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell *cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"cell"];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:@"cell"];
}
cell.textLabel.text = [listData objectAtIndex:indexPath.row];
[cell setAccessoryType:UITableViewCellAccessoryNone];
for (int i = 0; i < selectedIndexes.count; i++) {
NSUInteger num = [[selectedIndexes objectAtIndex:i] intValue];
if (num == indexPath.row) {
[cell setAccessoryType:UITableViewCellAccessoryCheckmark];
// Once we find a match there is no point continuing the loop
break;
}
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
如果我正确理解您的问题,您将拥有一个数组,并在选择行时将索引添加到数组中。那是行不通的。
我建议您有一个字典来映射选定的行,
在您的
didSelectRowAtIndexPath:
方法中,并且在您的
cellForRowAtIndexPath:
方法中,If I understand your problem correctly, you are having an array and adding the indexes to the array whenever the rows are selected. That won't work.
I suggest you to have a dictionary to map the selected rows,
In your
didSelectRowAtIndexPath:
method,And, in your
cellForRowAtIndexPath:
method,