我已将[{1}}子类化,以显示UITableViewCell
和两个UIImage
子视图。在表格视图的视图控制器中,在UILabel
方法中,我通过cellForRowAtIndexPath:
启用了附件视图。
单元格正确显示。
当我点击附件公开按钮时,我想用两个不同的标签子视图替换两个标签子视图。我的方法如下:
setAccessoryType:UITableViewCellAccessoryDetailDisclosureButton
中,在UITableViewCell
内,创建
layoutSubviews
用于“备用”标签,将它们放在同一个标签中
将两个“原始”标签放置并通过CGRect
; 问题是我无法弄清楚setAlpha:
中我用什么逻辑来了解附件按钮是否被轻敲。我看到在视图控制器中layoutSubviews
被调用时,该按钮被点击,从那里看起来我会调用accessoryButtonTappedForRowWithIndexPath:
但是无法弄清楚如何使用这个事实来完成我的工作试图做。
我是否认为这一切都错了?我应该只创建layoutSubviews
的另一个子类,而不是隐藏/显示带有alpha的CGRect
?
答案 0 :(得分:1)
当我点击附件公开按钮时,我想用两个不同的UILabel子视图替换两个UILabel子视图。
我会做以下事情。在UITableViewCell
子类中创建一个公共方法,如下所示:
- (void)changeContentForCell;
在此方法中,您可以根据需要设置contentView
。
然后在你的视图控制器实现
- (void)tableView:(UITableView *)tableView accessoryButtonTappedForRowWithIndexPath:(NSIndexPath *)indexPath
{
CustomCell* cCell = (CustomCell*)[tableView cellForRowAtIndexPath:indexPath];
[cCell changeContentForCell];
}
这是更改内容的简单示例。在我看来,您不必使用layoutSubviews
来添加视图。
将此逻辑保留在changeContentForCell
中,然后调用setNeedsLayout
更改布局。也许你可以有一个跟踪你的细胞状态的变量:正常状态或修改状态。
希望它有所帮助。