在我的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个单元格中,第一个看起来是第一个,但是如果选择与否,我保留的扩展单元格类实例不处于选中状态。这有什么视觉效果?
答案 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);
}
希望它能帮到你......