UIView with dynamic height multiple UILabel

cheeseRoot picture cheeseRoot · Apr 13, 2016 · Viewed 30.3k times · Source

I'm making a custom UIView with 2 UILabel in it, with each UILabel having dynamic height. I'm unable to set constraints for dynamic height. (I'm new to Auto-Layout & iOS stuff).

Both UILabels are connected to each other from Top & Bottom, and are Horizontally aligned to superview. And when I change content of one of the UILabel, UIView and UILabel does not resize as required.

Please suggest. Attaching screenshots for current constraints.

Answer

Badal Shah picture Badal Shah · Apr 13, 2016

I made a demo for you according to your requirement. Download it from below link,

Autoresize UIView and UILabel

Step by Step Guide :-

Step 1 :- Set constrain to UIView

1) Leading 2) Top 3) Trailing (From mainview)

enter image description here

Step 2 :- Set constrain to Label 1

1) Leading 2) Top 3) Trailing (From it's superview)

enter image description here

Step 3 :- Set constrain to Label 2

1) Leading 2) Top 3) Trailing (From it's superview)

enter image description here

Step 4 :- Most tricky give bottom to UILabel from UIView.

In Xcode 10 and above - Select your UIView and Label after that from the Align Constraint section select Bottom Edges constraint.

enter image description here

enter image description here

Step 5 :- (Optional) Set constrain to UIButton

1) Leading 2) Bottom 3) Trailing 4) Fixed Height (From mainview)

enter image description here

Output :-

enter image description here

Note :- Make sure you have set Number of lines =0 in Label property.

enter image description here

Edit1 :- If you want to increase size with BottomConstrain (>=) please check below Image.

enter image description here

I hope this info enough to understand Autoresize UIView according to UILabel's height and Autoresize UILabel According to text.