分段控制错误选择索引

时间:2013-11-13 15:54:32

标签: objective-c return uisegmentedcontrol

我遇到一些分段控件的问题: 我有一个包含10个单元格的tableview,所有单元格都有一个分段控件。

现在我的问题: 如果我更改分段控件的选定索引并向上或向下滚动,则某些分段控件的选定索引会发生变化。

有人有什么想法是假的吗?

//编辑:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
    static NSString *CellIdentifier;

    CellIdentifier = @"editCell";
    cellList[indexPath.row-1] = [[MSEditCardCell alloc] init];
    cellList[indexPath.row-1] = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];
    return cellList[indexPath.row-1];

}

2 个答案:

答案 0 :(得分:1)

正如Durican所说,这是细胞再利用的问题。您需要设置一个数据模型,用于存储您在每个单元格中显示的信息。当用户更改给定单元格中的选定段时,您需要通过更新模型中的那一部分信息来响应该更改。

然后,在您的cellForRowAtIndexPath方法中,您需要从模型中获取相应的条目并使用该信息来完全配置新单元格,包括设置该单元格的分段控件的状态。

这是基本的表视图内容,也是大多数人在第一次开始使用表视图时都会遇到的问题。

答案 1 :(得分:0)

这是因为滚动时要重复使用单元格。只需为单元格添加一个iVar或属性(布尔值),每次在cellForRowAtIndexPath中配置单元格时,请确保将segmentedControl设置为您正在设置的布尔值