tableview单元格如何在swift中调整单元格以及图像和标签

时间:2016-10-06 05:55:35

标签: ios swift uitableview tableviewcell

enter image description here当我们在tableview单元格中有一个标签和图像时,我们如何根据最后一个单元格(图片中)中的文本调整swift或lable中的单元格,还有更多的文本行但文本正在切割我们如何解决它

enter image description here

3 个答案:

答案 0 :(得分:2)

限制你的标签高度相等并将线条设为0。

var pickheight: CGFloat = 0.0

中写下此行
override func viewDidLoad() {
        super.viewDidLoad()
        tableTrip.rowHeight = UITableViewAutomaticDimension
}

增加tableview单元格的方法。

func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {

     pickheight = self.findHeightForText("Pass your text here like array value as String ", havingWidth: self.view.frame.size.width - 116, andFont: UIFont.systemFontOfSize(14.0)).height

     return "YOUR_DEFALUT_CELL_SIZE" + pickheight
}

为单元格查找文字高度的方法.. Its my label constrain ...

func findHeightForText(text: String, havingWidth widthValue: CGFloat, andFont font: UIFont) -> CGSize {
        var size = CGSizeZero
        if text.isEmpty == false {
            let frame = text.boundingRectWithSize(CGSizeMake(widthValue, CGFloat.max), options: .UsesLineFragmentOrigin, attributes: [NSFontAttributeName: font], context: nil)
            size = CGSizeMake(frame.size.width, ceil(frame.size.height))
        }
        return size
}

答案 1 :(得分:1)

  1. 为您的标签设置顶部,底部,前导,尾随约束
  2. 属性检查器 - >行设置为0
  3. viewDidLoad()方法
  4. 中设置 tableview.rowHeight = UITableViewAutomaticDimension

答案 2 :(得分:0)

你真正需要做的就是:

  1. 创建表格视图单元格时使用自动布局。
  2. 将表格视图rowHeight设置为 UITableViewAutomaticDimension。
  3. 设置 estimatedRowHeight 或实现身高估算委托方法。

    tableView.rowHeight = UITableViewAutomaticDimension

    tableView.estimatedRowHeight = 200 // Set maximum height needed for the table row

  4. 让Auto Layout在UITableViewCell上运行的技巧是确保你有限制来固定所有方面的每个子视图 - 也就是说,每个子视图应该有前导,顶部,尾部和底部约束。然后,子视图的固有高度将用于指示每个单元格的高度。

    请阅读本文了解详情和工作示例:https://www.raywenderlich.com/129059/self-sizing-table-view-cells