I have a UITableView
with Auto Layout and I need to reduce the height when the GADBannerView
appears at the bottom of the screen.
Unfortunat
Rather than trying to change the frame of the view, add a height constraint using auto layout and reduce the value of this constraint. Do the below steps:
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;
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;
One more thing, you have to call [self.view layoutIfNeeded];
method once you changne the constraints.
Enjoy :)
You can find out constraint like that
extension UIView {
var heightConstaint: NSLayoutConstraint? {
get {
for constraint: NSLayoutConstraint in constraints {
if constraint.firstAttribute == .height {
if constraint.relation == .equal {
return constraint
}
}
}
return nil
}
set{
setNeedsLayout()
}
}
}