ios - Since inserting UITableViewAutomaticDimension returned cells are tiny -


i working on comment section app , want cells resize automatically. if replace uitableviewautomaticdimension arbitrary value 120, looks more or less want to.

however, if leave @ uitableviewautomaticdimension cells returned literally tiny. add picture @ end showing both ways (left: uitableviewautomaticdimension, right: rowheight = 120). how can fix this? haven't found similar problem since do set constraints, in many cases cause of auto-resize problems (the subviews have translatesautoresizingmaskintoconstraints set false).

i going provide code may of interest. it's nothing else standard table view cells supposed auto-resize , use constraints.

i appreciate help!

commentcell

override init(style: uitableviewcellstyle, reuseidentifier: string?) {     super.init(style: style, reuseidentifier: reuseidentifier)      setupviews() }  func setupviews() {     //all of these subviews have .translatesautoresizingmaskintoconstraints = false     contentview.addsubview(profilepictureview)     contentview.addsubview(usernamelabel)     contentview.addsubview(commentlabel)      let marginguide = contentview.layoutmarginsguide      let viewwidth = uiscreen.main.bounds.width      nslayoutconstraint.activate([         profilepictureview.heightanchor.constraint(equaltoconstant: 42),         profilepictureview.widthanchor.constraint(equaltoconstant: 42),         profilepictureview.leftanchor.constraint(equalto: marginguide.leftanchor),         profilepictureview.topanchor.constraint(equalto: marginguide.topanchor, constant: -2),          usernamelabel.leftanchor.constraint(equalto: profilepictureview.rightanchor, constant: 16),         usernamelabel.widthanchor.constraint(equaltoconstant: viewwidth - 66),         usernamelabel.centeryanchor.constraint(equalto: profilepictureview.centeryanchor, constant: -8),          commentlabel.leftanchor.constraint(equalto: profilepictureview.rightanchor, constant: 16),         commentlabel.widthanchor.constraint(equalto: usernamelabel.widthanchor),         commentlabel.topanchor.constraint(equalto: usernamelabel.bottomanchor, constant: 4)     ]) } 

uitableviewautomaticdimension | 120:

<code>uitableviewautomaticdimension</code> | <code>120</code>

the issue constraints - add constraints subviews of cell, not contentview. omitted height constraints usernamelabel , commentlabel - thats correct, resize according contents. contentview not resize, because doesn't know desired size. without constraints, contentview might deduce size, defaults 44.0, described here.

so need add top constraint usernamelabel , bottom constraint commentlabel

usernamelabel.topanchor.constraint(equalto: contentview.topanchor, constant: 0) commentlabel.bottomanchor.constraint(equalto: contentview.bottomanchor, constant: 0) 

edit
seem have top anchor, bottom 1 should suffice.


Comments

Popular posts from this blog

php - Vagrant up error - Uncaught Reflection Exception: Class DOMDocument does not exist -

vue.js - Create hooks for automated testing -

Add new key value to json node in java -