Byte
Byte

Reputation: 2940

Autolayout Constraints Priority

I have 2 UILabel labelA and labelB and a width of 320 px. I created constraints

H:|-[labelA]-(>=4)-[labelB]-|

Unfortunately, labelA and labelB can sometime be big and would not fit without truncation. I would like to make sure that no matter what, labelB will not get truncated. (labelB will not go over 160 px). However, I would like to use the available space for labelA as much as possible so fixing labelB to half is just a waste of space.

Question: How do I put a priority such that labelB always retain its intrinsic size? Where as labelA can get truncated.

Upvotes: 11

Views: 6110

Answers (1)

jrturton
jrturton

Reputation: 119292

You set the content compression resistance to high on label B:

[labelB setContentCompressionResistancePriority: UILayoutPriorityRequired forAxis:UILayoutConstraintAxisHorizontal];

This means that B will try not to be compressed below the intrinsic size given by the text. To make it also be as small as possible, you may also want to set the contentHuggingPriority- this will make it try to match the size of the text.

Upvotes: 17

Related Questions