UITableViewCellStyleSubtitle

时间:2015-11-06 23:57:04

标签: ios objective-c uitableview autolayout size-classes

我正在使用UITableView并使用Apple提供的UITableViewCell Subtitle样式。

我也使用首选字体,以便它们与动态类型一起使用。如果用户转到“设置”并更改UI字体大小,则它还会影响我视图中的字体。

我还允许它使用row.estimatedRowHeight根据文本的长度动态选择行高。这很好,因为有了更大的字体和多行文本,单元格会相应调整。

使用图像是什么问题。图像尺寸不同,因此缩小尺寸。缩放是自动单元格高度的命中或未命中。它可能无法及时完成,因此系统计算高度可能会计算错误。

我的问题是,我可以手动将约束添加到UITableViewCell的{​​{1}}属性,以使其设置宽度和高度为88像素。这样,即使图片还没有调整大小,它至少会正确计算包含单元格的高度吗?

或者,或许最好问一下:当单元格和文本标签根据内容长度和大小动态调整大小时,是否可以为图像设置静态宽度/高度?

谢谢!

1 个答案:

答案 0 :(得分:0)

有一个很好的库可以动态创建UI。它被称为制图 https://github.com/robb/Cartography

这里有助于按图像视图高度创建可调整大小的单元格的代码:

import UIKit
import Cartography

class TableViewCell: UITableViewCell {
@IBOutlet weak var resizableImage: UIImageView!

override func awakeFromNib() {
    super.awakeFromNib()
    // Initialization code
}

override func setSelected(selected: Bool, animated: Bool) {
    super.setSelected(selected, animated: animated)
}

func configurate() {

    constrain(self.resizableImage) { view1 in
        view1.width == view1.height
        view1.top == view1.superview!.top
        view1.bottom == view1.superview!.bottom
    }

    constrain(self.resizableImage) { view1 in
        view1.height == 88
    }
}

}