很令人高兴的是,你bal忙地没有完全了解可上诉的意见是如何运作的。
It reuses cells, thats why you call the dequeTableCellWithIdentifier:
method on the UITableView
. This means that it will reuse one of the cells not longer in view.
Don t add a UITableViewCell
for every item in your UITableViewDataSource
, this could/will use up to much memory and your UITabelView
will feel very slow.
仅确保数据来源掌握了您所需的所有数据,而不是<编码>可调用的电文/代码>。 选定州,......
您需要做的是将电池的选定状态定在<条码>上,可检索的电文/代码>中,并查看<条码>中选用的电文/代码>,而不是<编码>可调用的电文/代码>。
So in the object the you retrieve from the JSON add a property selected which takes a BOOL.
接着,<代码>可上网查阅编码> 方法<>>。 例如:
- (UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *cellIdentifier = @"SomeCellIdentiefier";
UITableViewCell *cell = (SongTableViewCell *)[tableView dequeueReusableCellWithIdentifier:cellIdentifier];
if (!cell) {
//Load new cell
}
YouJSONObject *item = [self.array objectAtIndex:indexPath.row];
if (item.selecte) {
cell.accessoryType = UITableViewCellAccessoryCheckmark;
} else {
cell.accessoryType = UITableViewCellAccessoryNone;
}
}
例如:
- (void) tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
YouJSONObject *item = [self.array objectAtIndex:indexPath.row];
item.selected = !item.selected;
if (item.selecte) {
cell.accessoryType = UITableViewCellAccessoryCheckmark;
} else {
cell.accessoryType = UITableViewCellAccessoryNone;
}
}