UITableViewCellStyleSubtitle的UITableViewCell上的AutoLayout约束条件
问题描述:
我正在使用UITableView
并使用UITableViewCell
Subtitle
Apple提供的样式。UITableViewCellStyleSubtitle的UITableViewCell上的AutoLayout约束条件
我也是用的首选字体,使他们与动态类型的工作。如果用户转到“设置”并更改UI字体大小,它也会影响我的视图中的字体。
我也允许它动态地选择基于使用row.estimatedRowHeight文本的长度行高度。这很好,因为对于较大的字体和多行文本,单元格会相应地进行调整。
使用图像是什么问题。图像大小不同,因此缩小了它们的大小。缩放比例是自动细胞高度的命中或丢失。它可能无法及时完成,因此高度的系统计算可能会计算错误。
我的问题是,我可以手动添加约束到UITableViewCell
的imageView
属性,以便它具有88像素的设置宽度和高度。这样,即使图片还没有调整大小,它至少会正确计算包含的单元格的高度?
或者,也许不如想问:有没有可能在小区和文字标签resize在动态基于内容的长度和大小来对图像静态宽度/高度?
谢谢!
答
有一个用于动态创建用户界面的好库。这就是所谓的制图 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
}
}
}