动态更改TableView单元格高度

时间:2016-03-04 06:38:20

标签: ios objective-c iphone swift

Swift / Objective C - 动态更改TableView单元格高度的简单方法

在我的表格视图中,单元格中断第一行和第三行,每个标签都将动态

enter image description here

2 个答案:

答案 0 :(得分:24)

向图像视图添加约束(顶部,前导,尾随,高度)

不添加底部约束

enter image description here

为每个标签添加约束(顶部,前导,尾部,底部)

enter image description here

将约束添加到上一个标签(顶部,前导,尾部,底部)

enter image description here

设置每个标签

行数= 0

换行符模式= 单词换行

enter image description here

表视图数据源和委托方法

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell
{
    let cell = tableView.dequeueReusableCellWithIdentifier("PropertyListCell", forIndexPath: indexPath) as UITableViewCell!

    imgProperty = viewBg.viewWithTag(111) as! RemoteImageView
    lblPropertyName = viewBg.viewWithTag(112) as! UILabel
    lblPrice = viewBg.viewWithTag(113) as! UILabel
    lblAddress = viewBg.viewWithTag(114) as! UILabel
    lblAreaPerSquare = viewBg.viewWithTag(115) as! UILabel

    imgProperty.imageURL = NSURL(string: "Image Url")
    lblPropertyName.text="Jai Maharashtra Apartment"
    lblPrice.text="Rs. 900 - 10000"
    lblAddress.text="411041,Maharashtra Sadan, Pune, Maharashtra , India" // just address changed. 
    lblAreaPerSquare.text="500 Square Meter"

    cell.selectionStyle = UITableViewCellSelectionStyle.None
    return cell
}

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

func tableView(tableView: UITableView, estimatedHeightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat
{
    return 44.0
}

现在所有标签都是动态

enter image description here

答案 1 :(得分:0)

Swift - 3.0

 func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
     var height:CGFloat = CGFloat()
     if indexPath.row == 0 {
     height = 80
    }
    else if indexPath.row == 1 {
     height = self.view.frame.size.height - 80 - 44 - 64
     print(height)
    }
    return height
   }