Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Autolayout ignores UITabBar (content under the bar) on iOS7

Tags:

ios7

uitabbar

I've set UITabBar as Opaque in Storyboard, but i still seems to be transulcent. When I set my custom UITabBarController with setBarStyle there is only OpaqueBlack availible.

But that the least of the problem. No matter what I do, content of my view gets positioned under the tab bar, like it ignored by ayutolayout. On Storyboard everything looks fine. something messes up in the runtime?

Oh the most important thing. The problem occurs on iOS7 only!

Here are my ViewController settings in storyboard:

enter image description here

And here is problematic content (UITableView) which gets positioned under the UITabBar on ios7 app. Looks fine in storyboard though:

enter image description here

And finally UITableView constraints:

enter image description here

like image 551
Jacek Kwiecień Avatar asked Sep 23 '13 09:09

Jacek Kwiecień


2 Answers

Putting this on viewDidLoad, solves the problem:

if (SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"7.0")) {
    [self setEdgesForExtendedLayout:UIRectEdgeNone];
}
like image 57
Jacek Kwiecień Avatar answered Sep 29 '22 13:09

Jacek Kwiecień


xCode also provides the programatic capability:

[self setEdgesForExtendedLayout:UIRectEdgeNone];

within your storyboard for a given ViewController via the Extend Edges section:

enter image description here

Simply disable both the Under Top Bars and Under bottom Bars options. They are on by default.

like image 41
zinc1oxide Avatar answered Sep 29 '22 11:09

zinc1oxide