Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Change frame programmatically with auto layout

I have a UITableView with Auto Layout and I need to reduce the height when the GADBannerView appears at the bottom of the screen.

Unfortunately with Auto Layout it is impossible to modify the frame. The solution is to remove Auto Layout and set the frame manually. This is very dangerous because all my apps works fine on 3.5' and 4.0' displays and removing Auto Layout adds a new testing phase and more effort.

Is there a way to change the frame even if Auto Layout is enabled?

like image 272
Fry Avatar asked May 14 '14 12:05

Fry


1 Answers

Let your UITableView constraints to bottom layout is set to 0, make an IBOutlet. Now let your GADBannerView height is 40 so change your outlet.constant = 40; For more about how to make IBOutlet and change its value have a look into this or this hope this will help.

Edit: For those who seeking for example, follow these simple steps (Because this is accepted answer, I think it is worth to have an example. Credit to @manujmv for this example)

  1. Create a height constraint for your view in your interface.

  2. Then add an IBOutlet object in your class for this constraint. For example:

    @property (weak, nonatomic) IBOutlet NSLayoutConstraint *heightConstraint;

Connect this object in your connection panel.

  1. Then change the value of this constraint whenever you needed

    self.heightConstraint.constant = 40;

like image 67
Bharat Avatar answered Sep 21 '22 00:09

Bharat