UITableViewCell内的自定义accessoryView不可见

时间:2012-05-29 17:04:48

标签: ios uitableview

我在UIImageView ala中为accessoryView放置了UITableViewCell

UIImage* dragHandleImage = [UIImage imageNamed:@"rtf_icon"];
UIImageView* dragHandleView = [[[UIImageView alloc] initWithImage:dragHandleImage] autorelease];

dragHandleView.tag = DRAG_HANDLE_TAG;
cell.accessoryView = dragHandleView;

但是,当单元格显示在表格中时,accessoryView图像仅在每个部分的第一行可见。在探索之后,我发现在tableview的willDisplayCell:委托调用和单元格的显示之间,accessoryView的alpha属性设置为零。反正是为了防止这种情况,所以图像是可见的吗?

编辑: 它似乎是在layoutSubviews调用UITableViewCell期间完成的。

编辑: 完整的cellForRowAtIndexPath:函数很长且充满了在这个特定实例中不会被击中的情况。填充单元格的代码如下:

cell.textLabel.hidden = NO;
cell.textField.hidden = YES;
cell.textLabel.tag = indexPath.section * indexPath.row;
NSString *filename = document.document.filename;
if([filename isEqualToString:@""])
{
    filename = [document.document previewItemTitle];
}
cell.textLabel.text = filename;
cell.showsReorderControl = NO;  

以下代码在图像可见时填充单元格:

cell.textField.tag = indexPath.section;
cell.textField.hidden = NO;
cell.textField.text = [section numberedTitle];
cell.textField.enabled = canAddSections;
cell.textField.clearButtonMode = UITextFieldViewModeWhileEditing;
cell.textField.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter;
cell.textLabel.hidden = YES;
cell.showsReorderControl = NO;

1 个答案:

答案 0 :(得分:2)

由于这些单元格是可编辑的,因此会显示editingAccessoryView。将accessoryView放入editingAccessoryView证明可以解决问题。不雅,但功能齐全。