Skip to content

Commit 24b2b6d

Browse files
committed
Implement workaround for potential visual glitch
Using CGRectGetMaxY resolves a layout issue where otherwise the inset ends below the navbar (e.g. Phone 14 Pro iOS18), but at the same time it causes an issue with the inset not taking into account the status bar (e.g. iPod Touch iOS15.5). This seems to be caused by calling this method from viewDidLoad instead of willLayoutSubviews. This workaround avoids rework of DetailVC's delicate layout.
1 parent 5d34576 commit 24b2b6d

File tree

1 file changed

+8
-1
lines changed

1 file changed

+8
-1
lines changed

XBMC Remote/Utilities.m

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1005,7 +1005,14 @@ + (CGFloat)getTopPadding {
10051005
}
10061006

10071007
+ (CGFloat)getTopPaddingWithNavBar:(UINavigationController*)navCtrl {
1008-
CGFloat topPadding = UIApplication.sharedApplication.statusBarFrame.size.height + navCtrl.navigationBar.frame.size.height;
1008+
// Workaround: Using CGRectGetMaxY resolves a layout issue where otherwise the inset ends below the navbar (e.g.
1009+
// iPhone 14 Pro iOS18), but at the same time it causes an issue with the inset not taking into account the status
1010+
// bar (e.g. iPod Touch iOS15.5). This seems to be caused by calling this method from viewDidLoad instead
1011+
// of willLayoutSubviews. This workaround avoids rework of DetailVC's delicate layout.
1012+
CGFloat topPadding = CGRectGetMaxY(navCtrl.navigationBar.frame);
1013+
if (topPadding <= navCtrl.navigationBar.frame.size.height) {
1014+
topPadding = UIApplication.sharedApplication.statusBarFrame.size.height + navCtrl.navigationBar.frame.size.height;
1015+
}
10091016
return topPadding;
10101017
}
10111018

0 commit comments

Comments
 (0)