gpt4 book ai didi

ios - 多次检查长分段 UITableView

转载 作者:行者123 更新时间:2023-12-01 16:59:04 24 4
gpt4 key购买 nike

我在处理 UITableView 时遇到了一个疯狂的问题,你有什么好的示例项目(github)或教程来展示如何在一个部分UITableView上进行多项选择(检查) ,我的意思是很长的UITableView用户可以在其中上下滚动并选择/取消选择不同部分中的单元格。
我遇到的问题是关于检查不同部分的单元格,以及上下滚动表格 View 。该应用程序崩溃了,在更好的情况下,当我向下和向上滚动屏幕(表格 View )时,我会检查随机单元格。所以我决定做一个简单的项目,在将它集成到我的应用程序之前我会尝试所有这些。

导致崩溃的一系列 Action 是:在 section1 中选中 cell1,在 section2 中选中 cell2,然后在 section1 中取消选中 cell1。
样本为here ,请测试一下,太轻量级了,用断点跟踪崩溃,发现是这个方法导致的问题:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {

NSDictionary *dict = [self.tableData objectAtIndex:[self tableIndexFromIndexPath:indexPath]];//this statement is the issue, i think the app is conflicting between sections when check/uncheck cells
BOOL newState = ![[dict objectForKey:kCellStateKey] boolValue];
NSDictionary *newDict = [NSDictionary dictionaryWithObjectsAndKeys:[dict objectForKey:kCellTextKey], kCellTextKey, [NSNumber numberWithBool:newState], kCellStateKey, nil];
[self.tableData replaceObjectAtIndex:indexPath.row withObject:newDict];

[tableView reloadRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationNone];
}

我真的需要你的专业知识来改进我的代码。提前谢谢。

最佳答案

即使分配正确,该表也不喜欢出于某种原因更换 DICT,这将起作用。

1) 将所有字典更改为 MutableDicts

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{
NSMutableDictionary *dict = [self.tableData objectAtIndex : [self tableIndexFromIndexPath : indexPath]];

BOOL newState = ![[dict objectForKey:kCellStateKey] boolValue];

[dict setValue :[NSNumber numberWithBool:newState] forKey : kCellStateKey];

NSArray *test = [[NSArray alloc]initWithArray : [NSArray arrayWithObject:indexPath] ];

[tableView reloadRowsAtIndexPaths : test withRowAnimation:UITableViewRowAnimationNone];
}

关于ios - 多次检查长分段 UITableView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8878324/

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