Background
This is in reference to this post (TLDR; UITableViewCell heights should be calculated automatically if you are using Auto Layout properly).
Problem
If I add the views directly to contentView
, I keep on getting this error:
018-11-25 02:17:33.514881+0200 [78571:855018] [LayoutConstraints] Unable to simultaneously satisfy constraints.
Probably at least one of the constraints in the following list is one you don't want.
Try this:
(1) look at each constraint and try to figure out which you don't expect;
(2) find the code that added the unwanted constraint or constraints and fix it.
(
"<NSLayoutConstraint:0x2825f0be0 V:|-(76)-[.TTRLabel:0x10e7c7e40'DRIVER'] (active, names: '|':UITableViewCellContentView:0x10e7cb700 )>",
"<NSLayoutConstraint:0x2825f0b90 V:[.TTRLabel:0x10e7c7e40'DRIVER']-(10)-[.TTRLabel:0x10e7c8420'TIME'] (active)>",
"<NSLayoutConstraint:0x2825f1c70 V:[.TTRLabel:0x10e7c8420'TIME']-(10)-[.TTRLabel:0x10e7c8a00'ADDRESS'] (active)>",
"<NSLayoutConstraint:0x2825f1ea0 .TTRLabel:0x10e7c96a0' new office '.bottom == UITableViewCellContentView:0x10e7cb700.bottom - 26 (active)>",
"<NSLayoutConstraint:0x2825f1f40 .TTRLabel:0x10e7c96a0' new office '.lastBaseline == .TTRLabel:0x10e7c8a00'ADDRESS'.lastBaseline (active)>",
"<NSLayoutConstraint:0x2825f34d0 'UIView-Encapsulated-Layout-Height' UITableViewCellContentView:0x10e7cb700.height == 44 (active)>"
)
My problem is with this part
<NSLayoutConstraint:0x2825f34d0 'UIView-Encapsulated-Layout-Height' UITableViewCellContentView:0x10e7cb700.height == 44 (active)>"
It's insisting that the tableViewCell height is just the standard 44 (and thus is ignoring all my autolayout work!
The only thing that solves the problem is running this
self.contentView.autoPinEdgesToSuperviewEdges()
which is weird, b/c it's not documented anywhere and doesn't make sense in the grand scheme of things.
Here is the entire UITableViewCell code for reference.
// I add this code, it works for me, my question is on iOS 10