具有 2 种附件类型的 UITableViewCell
Posted
技术标签:
【中文标题】具有 2 种附件类型的 UITableViewCell【英文标题】:UITableViewCell with 2 accessory types 【发布时间】:2011-06-09 20:53:24 【问题描述】:我想制作一个UITableViewCell
,带有一个标签和两个配件类型:
UITableViewCellAccessoryDetailDisclosureButton
附件。
所选单元格应同时显示UITableViewCellAccessoryDisclosureIndicator
和UITableViewCellAccessoryDetailDisclosureButton
附件。
我知道如何做到这一点的唯一方法是使用所选单元格的附件视图的图像。有没有其他方法可以做到这一点?
【问题讨论】:
我认为这不可能。您可能必须使用自己放置的图像来近似其中一个配件。 【参考方案1】:自定义UITableViewCell
(在线以及the documentation 中的大量教程和示例)。
【讨论】:
我知道如何使用尽可能多的 UILabel 或 UIImage 制作自定义 UITableViewCell,但我不知道如何在同一个单元格中使用 2 种附件类型。您能否给我一个链接到完成此操作的教程?我试图找到它,但没有成功。【参考方案2】:在你的
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
selectedIndex = indexPath //selectedIndex is a property
然后在
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
//usual cell stuff
if(indexPath == selectedIndex)
[cell setAccessoryType:UITableViewCellAccessoryDisclosureIndicator];
else
[cell setAccessoryType:UITableViewCellAccessoryDetailDisclosureButton];
所以诀窍就是保持对所选单元格的引用并相应地设置指标。
请注意,您可能想在设置 selectedIndex 之前测试单元格是否已被选中,在这种情况下,您应该设置 selectedIndex = nil。
【讨论】:
谢谢,但我不想要一种配件类型或另一种。对于选中的行,我都想要。 啊,好吧,这不是你在编辑之前要问的。披露指示器和 -button 占据相同的空间,所以我猜你必须使用上面提供的自定义按钮解决方案。将其添加到单元格中,并在 cellForRowAtIndexPath.. if(selectedIndex == indexPath) 中设置 [disclosureBtn setHidden:YES] 或 NO。 ITableViewCellAccessories 不是视图。您将如何在自定义 UITableViewCell 中定义它们?其中一个作为图像/按钮,或者有其他方法吗? 当然,它是一个按钮,正如你所说的,正如 UITableViewCellAccessoryDetailDisclosureButton 键的末尾所指示的那样。谢谢! 我仍然没有得到我需要的东西。我需要 UITableViewCellAccessoryDisclosureIndicator 位于左侧。我怎样才能做到这一点?这次我可以看到它不是按钮,所以我无法添加按钮并将其设置为 UITableViewCellAccessoryDisclosureIndicator。以上是关于具有 2 种附件类型的 UITableViewCell的主要内容,如果未能解决你的问题,请参考以下文章
具有 AccessoryType 的自定义 UITableViewCell 打破了约束
smtp 发送电子邮件,为啥一个附件可以有两个 Content-Type?