当选择更改内部图像时,UITableViewCell奇怪的行为

时间:2012-10-24 11:52:08

标签: objective-c ipad ios5 uitableview

在我的iPad应用程序中使用带有nib文件的自定义扩展UITableViewCell时,我遇到了问题。 这个单元格在选择它时会有一个行为,如果选中了复选标记图像,则选中它是未选择的,我使用自定义图像,而不是Apple的默认检查单元格。 所以我的功能中的一切似乎都是正确的。我发布了一些代码。 我使用registerNib方法加载nib单元格。

[tableView registerNib: [UINib nibWithNibName: @"ANibTableViewCell" bundle: nil] forCellReuseIdentifier: Identifier];

nib单元格使用类文件进行扩展,并通过它进行管理,连接出口附加模型值等。

在cellForRowAtIndexPath中:

- (UITableViewCell*) tableView: (UITableView*) tableView cellForRowAtIndexpath: (NSIndexPath*) indexPath
{
ExtendedtableViewCell* cell;
AModel* model;

cell = [tableView dequeueReusableCellWithIdentifier: Identifier];
model = [modelForDisplay objectAtIndex: indexPath.row];
cell.model = model;
// Some operations setting the check mark if it needed etc.
// Checkmark is a UIImageView in the nib cell that just changes image on selection
// Some other operations happening notified by the model if selected or unselected
return(cell);
}

我的问题现在很奇怪,让我们说你在视觉上有6个单元格而你选择前3个,一切都很好,但如果向下滚动以查看下一个单元格,让我们说你向下滚动6行你会注意到每6个单元格中,第一个看起来是第一个,但是如果选择与否,我保留的扩展单元格类实例不处于选中状态。这有什么视觉效果?

1 个答案:

答案 0 :(得分:0)

试试这个,

- (UITableViewCell *)tableView:(UITableView *)tableView1 cellForRowAtIndexPath:(NSIndexPath *)indexPath {

NSString *Identifier = [NSString stringWithFormat:@"cell%d.%d",indexPath.section,indexPath.row];


ExtendedtableViewCell* cell;
AModel* model;

cell = [tableView dequeueReusableCellWithIdentifier: Identifier];
model = [modelForDisplay objectAtIndex: indexPath.row];
cell.model = model;
// Some operations setting the check mark if it needed etc.
// Checkmark is a UIImageView in the nib cell that just changes image on selection
// Some other operations happening notified by the model if selected or unselected
return(cell);
}

希望它能帮到你......