ios tableView自動計算行高

2021-08-08 17:46:05 字數 1928 閱讀 8727

最近通過學習了解到乙個東西就是tableview可以自動的計算行高了,只需要配合autolayout來使用就可以了

先設定如下所示的**

//先設定預估行高

tableview.estimatedrowheight = 200

//再設定自動計算行高

tableview.rowheight = uitableviewautomaticdimension

然後你要保證你在cell裡面的控制項,自上而下是有約束條件的最後乙個控制項要麼有高度的限制要麼有底部的約束限制,這樣自上而下才可能計算成功。也就是說設定約束的時候必須注意每個控制項在垂直方向上必須都有約束。

比如說這樣子,我們設定了高度的約束,頂部的約束,然後最下面那個控制項我設定了頂部的約束和底部的約束

//2、自動布局,新增頂部的約束

contentview.addconstraint(nslayoutconstraint(item: statuscelltopview, attribute:.top, relatedby: .equal, toitem: contentview, attribute: .top, multiplier: 1, constant: 0))

//新增左邊的約束

contentview.addconstraint(nslayoutconstraint(item: statuscelltopview, attribute: .left, relatedby: .equal, toitem: contentview, attribute: .left, multiplier: 1, constant: 0))

//新增右邊的約束

contentview.addconstraint(nslayoutconstraint(item: statuscelltopview, attribute: .right, relatedby: .equal, toitem: contentview, attribute: .right, multiplier: 1, constant: 0))

//新增高度的約束

contentview.addconstraint(nslayoutconstraint(item: statuscelltopview, attribute: .height, relatedby: .equal, toitem: nil, attribute: .notanattribute, multiplier: 1, constant:cgfloat(wbcellmargin+wbcelliconviewwh)))

//新增正文的頂部約束

contentview.addconstraint(nslayoutconstraint(item: contenttext, attribute: .top, relatedby: .equal, toitem:statuscelltopview, attribute: .bottom, multiplier: 1, constant: cgfloat(wbcellmargin)))

//新增正文的左邊的約束

contentview.addconstraint(nslayoutconstraint(item: contenttext, attribute: .left, relatedby: .equal, toitem: contentview, attribute: .left, multiplier: 1, constant: cgfloat(wbcellmargin)))

//設定底部的約束

contentview.addconstraint(nslayoutconstraint(item: contenttext, attribute: .bottom, relatedby: .equal, toitem: contentview, attribute: .bottom, multiplier: 1, constant: cgfloat(-wbcellmargin)))

iOS tableView分割槽 索引

1.建立乙個viewcontroller,new file cocoa touch objective c class class viewcontroller,subclass of uiviewcontroller 2.開啟xib,在view中新增tableview,並將tableview的兩個...

iOS tableView效能優化

什麼時候呼叫 每當有乙個cell進入視野範圍內就會呼叫 uitableviewcell tableview uitableview tableview cellforrowatindexpath nsindexpath indexpath 3.覆蓋資料 cell.textlabel.text nss...

iOS tableView 上下偏移

說一下問題吧,xcode10 向下相容到ios8,ios10以下版本會出現tableview向上或者向下偏移很是煩人。於是山寨了乙個解決方案 該方法適用於向上偏移 void tableview uitableview tableview willdisplaycell uitableviewcell...