Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

UIView with dynamic height multiple UILabel

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.

like image 936
sudhanshu-shishodia Avatar asked Apr 13 '16 18:04

sudhanshu-shishodia


2 Answers

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.

like image 70
Badal Shah Avatar answered Nov 09 '22 22:11

Badal Shah


  1. Set the Lines property of both labels to 0 in interface builder.
  2. Make sure there is no constraint for height of any of the labels or the uiview.
  3. Make sure there are no constraints on uiview which force it to a certain size, for example, if you have a constraint on uiview for certain distance from top of superview and another constraint of certain distance from bottom of superview, it will not work.
  4. Try changing the text of labels in code and height should automatically adjust.
like image 24
Kashif Avatar answered Nov 09 '22 23:11

Kashif