ios - How to set contraints for self sizing UITableViewCell using Auto Layout in Interface Builder -
i have self-sizing tableviewcell presents comments. if current user commented present edit , delete buttons. contraints work in case. of constraints set in interface builder.
the challenge when comment doesn't belong user set .ishidden = true both edit , delete buttons. how can adjust constraints new scenario?
edit: issue when set .ishidden true on buttons, want cell height shrink button space empty.
another approach:
toggle .isactive state of constraint bottom of buttons bottom of cell, along .ishidden state.
to so, add vertical space constraint bottom of date label bottom of cell, set >= 4 (or "padding" want when buttons not there).
add @iboutlet spacing constraint bottom of edit button bottom of cell. in image, shows bottom = edit button.bottom + 2. when ctrl+drag constraint ib source file generate iboutlet line this:
@iboutlet weak var editbuttonbottomconstraint: nslayoutconstraint! you need edit line, though... constraints deallocated when deactivated, unless have "strong" reference it. so, remove weak modifier:
@iboutlet var editbuttonbottomconstraint: nslayoutconstraint! now, in cellforrowat, can do:
cell.deletebutton.ishidden = !(comment.userid == appuserid) cell.editbutton.ishidden = !(comment.userid == appuserid) cell.editbuttonbottomconstraint.isactive = (comment.userid == appuserid) although, personally, make function inside cell.
based on cell design, though, i'm guessing commentslabel possibly / multi-line label? , you'll want cell expand vertically if comment is, say, 8 lines long? if so, still have few constraint relationships work out.

Comments
Post a Comment