让自定义 TableViewCell 的 UIimageView 宽度为单元格宽度的 1/3,单元格高度 = 图像纵横比

Posted

技术标签:

【中文标题】让自定义 TableViewCell 的 UIimageView 宽度为单元格宽度的 1/3,单元格高度 = 图像纵横比【英文标题】:Have UIimageView width of custom TableViewCell be 1/3 of cell width, and height of cell = image aspect ratio 【发布时间】:2018-08-05 21:38:08 【问题描述】:

我是 ios 编程新手,主要是使用界面生成器来调整单元格布局。 目前我有一个带有 ImageView 和 Label 的自定义 TableView 单元格。

我想:

1) ImageView Width = 1/3 大小的单元格(我似乎无法通过情节提要做到这一点)

2) 在保持图像纵横比的情况下动态调整单元格高度。我已经为 UIImageView 添加了约束,使其等于单元格高度。

我搜索了 ***,但其中一些答案变得非常复杂,所以我无法真正理解如何将它与我的案例相匹配。 我玩弄了一些限制,但似乎我必须以编程方式执行此操作?

这是我目前拥有的单元格方法:

extension FirstTableViewController: UITableViewDelegate, UITableViewDataSource

    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int 
        return dataCells.count
    

    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell 

        let folderCell = dataCells[indexPath.row]
        print(folderCell)
        let cell = tableView.dequeueReusableCell(withIdentifier: "cell") as! FirstTableViewCell
        cell.setCell(cell:folderCell)
        return cell

这是我的单元格类:

class FirstTableViewCell: UITableViewCell 


    @IBOutlet weak var ImageView: ScaledHeightImageView!
    @IBOutlet weak var FolderLabel: UILabel!

    override func awakeFromNib() 
        super.awakeFromNib()
        //print(FolderLabel)


    
    func setCell (cell : FolderCell)
        self.ImageView.image = cell.image
        self.FolderLabel.text = cell.label
    

【问题讨论】:

【参考方案1】:

您可以通过在故事板上添加与 superview 相等的宽度,然后将其 Multiplier 更改为 0.3

【讨论】:

啊,谢谢 =)。 抱歉,打扰您了,您是如何获得与 Superview 相同的宽度的?您是否同时单击 view 和 imageView 并选择“等宽”?谢谢。 任何时候,Ctrl + 从图像视图拖到 contentView“单元格背景” 谢谢。你的意思是“contentView”吗?我看到了“contentView”,但我不确定我没有看到“单元格背景”。 谢谢。很抱歉再次打扰您。我按照您的建议添加了约束,但是如果我将乘数设为 0.5,则某些图像似乎不会占据单元格的一半,而其他图像则占据一半以上。我有方面适合检查。看来我仍然需要动态更改单元格的高度,以便它可以保持纵横比,同时只占用一半的单元格。我该怎么做呢?谢谢。

以上是关于让自定义 TableViewCell 的 UIimageView 宽度为单元格宽度的 1/3,单元格高度 = 图像纵横比的主要内容,如果未能解决你的问题,请参考以下文章

让自定义视图仅向下移动

让自定义列表适配器正确膨胀多个线性布局

无法让自定义 RKBlockValueTransformer 与 RestKit 一起正常工作

如何让自定义 UIControl 作为推送操作参与 segue?

如何让自定义表格视图单元格扩展到表格末尾?

无法让自定义活动指示器设置动画