2015-11-06 106 views
0

我正在使用UITableView并使用UITableViewCellSubtitle Apple提供的样式。UITableViewCellStyleSubtitle的UITableViewCell上的AutoLayout约束条件

我也是用的首选字体,使他们与动态类型的工作。如果用户转到“设置”并更改UI字体大小,它也会影响我的视图中的字体。

我也允许它动态地选择基于使用row.estimatedRowHeight文本的长度行高度。这很好,因为对于较大的字体和多行文本,单元格会相应地进行调整。

使用图像是什么问题。图像大小不同,因此缩小了它们的大小。缩放比例是自动细胞高度的命中或丢失。它可能无法及时完成,因此高度的系统计算可能会计算错误。

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

或者,也许不如想问:有没有可能在小区和文字标签resize在动态基于内容的长度和大小来对图像静态宽度/高度?

谢谢!

回答

0

有一个用于动态创建用户界面的好库。这就是所谓的制图 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 
    } 
} 

}