当只有一些有 imageView 时,对齐 UITableViewCells 的正确方法是啥?

Posted

技术标签:

【中文标题】当只有一些有 imageView 时,对齐 UITableViewCells 的正确方法是啥?【英文标题】:What is the proper way to align UITableViewCells when only some have an imageView?当只有一些有 imageView 时,对齐 UITableViewCells 的正确方法是什么? 【发布时间】:2010-05-21 18:26:54 【问题描述】:

我是 iPhone 编程新手,正在开发我的第一个真正的应用程序(即不是写在书本或在线的应用程序),我遇到了一个小问题,我可以通过多种方式解决,但我觉得应该是一个很好的解决方案,也许我只是想念。

这是场景:我有一个UITableView,里面有一堆标准的UITableViewCells。我想要做的是在选择单元格时切换一个绿色复选标记并且我有该部分工作(注意:我已经将accessoryType用于其他用途,所以我不能用它做复选标记......此外,它不那么漂亮)。不幸的是,当我像这样切换复选标记时:

if (...) 
  cell.imageView.image = [UIImage imageNamed:@"checkmark.png"];
 else 
  cell.imageView.image = nil;

它使单元格的标签根据是否被检查来回反弹。无论是否设置了图像,对齐单元格文本(通过cell.textLabel.text 设置)的正确方法是什么?我想出的解决方案是:

    在 Photoshop 中创建一个空白的 40x40 png 图像并将未选中的设置为该图像 仅在代码中创建一个空白的 40x40 图像 设置一些我不知道的设置会为我对齐 创建一个 UITableCellView 的子类来满足我的需要(这很愚蠢,我只会选择选项 1...)

建议?想法?评论?非常感谢:-)

附:如果这有什么不同,我希望该解决方案可以与 OS 3.0 和 4.0 一起使用。

【问题讨论】:

【参考方案1】:

选项 1 是标准单元的方法。

严格来说,您不必继承 UITableViewCell 来自定义布局。您可以将任何您希望的视图添加到 contentView。因此,您可以将 UILabel 和 UIImageView 添加到 contentView 而不是使用 imageView 和 textLabel 属性。

【讨论】:

感谢您的回答。 @Shaji - 感谢您的评论,这个问题将来可能会有所帮助。

以上是关于当只有一些有 imageView 时,对齐 UITableViewCells 的正确方法是啥?的主要内容,如果未能解决你的问题,请参考以下文章

cell.imageView!.frame 大小变化。迅速

使用自定义 UITableViewCell 时,imageview 框架为零

UIImageView 中奇怪的对齐行为

如果另一个项目不存在,Xcode会将项目对齐在中心

图像约束优先于标签

android长textview封面imageview