I had a similar (actually, the exact) problem, where the checkmark would push everything to the left.
- EDIT:
A few hours after my original answer, I realized it's a really simple issue.
This push to the left is a constraint pushing the contentView of the cell. So?
Connect the constraint from the item on the right (like the i button), to the cell itself, not its contentView.
- Original answer (the actual answer is on top, this is for the record):
I just realized there's a very simple solution. I had a button that was pushed left when checkmark was on and I had to keep a constraint to keep it in place (so that 'uncheck' won't move the button to the right). It was hard-coded 'width' from the right and overall just bad practice. Never mind that I could not 'get' that checkmark 'width' to do this dynamically.
Solution?
Hold a constraint from the left.
That's it. I have a label too, so in my case: Constraint from the button left to the label (so they won't overlap) and from the button-left to left content-view. Basically, whatever moves on the right does not really 'reaches' the left side (rather have everything 'sitting' on the right).
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…