Change frame programmatically with auto layout

autolayout, ios, objective-c, uitableview

Solution

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)

Create a height constraint for your view in your interface.

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.

Then change the value of this constraint whenever you needed

self.heightConstraint.constant = 40;

Problem

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?

Original source

Related problems