I have made a custom toast library (very simple, just a box which appears under navigation bar). Which works fine in iOS 6 which is my target group. But since iOS 7 has released it didn't display correctly.
The way I tried to fix it was through this code:
if(SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"7,0")){
self.offset = [UIApplication sharedApplication].statusBarFrame.size.height + self.viewController.navigationController.navigationBar.frame.size.height;
}
I made a macro which can be found on Stack overflow to detect if the iOS version is 7 and then add the status bar height and the navigation height. This works correctly in portrait mode in iOS 7, but when I switch to landscape offset becomes 512?.
Can anybody explain way this happens and how I can fix this?
Decided to split the code because a comment and see what is exactly causing the difference. What I did was:
CGFloat statusBarHeight =[UIApplication sharedApplication].statusBarFrame.size.height;
CGFloat navBar = self.viewController.navigationController.navigationBar.frame.size.height;
self.offset = statusBarHeight + navBar;
NSLog(@"Init - statusBarHeight: %f, navBar: %f", statusBarHeight, navBar);
As it turns out for some reason statusbar is in portrait 20 and in landscape it is 480
This is because height and width are turned around, answer came from comment
Best Answer
As I have previously done same "fixes", I've noticed that in landscape
and
values are switched.