cordova-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From agri...@apache.org
Subject [06/14] git commit: CB-5595 Fixed the positioning and autoresizing for certain rotation scenarios.
Date Thu, 02 Jan 2014 18:08:33 GMT
CB-5595 Fixed the positioning and autoresizing for certain rotation scenarios.

The autoresizing masks are applied conditonally based on the
browserOptions.toolbarposition flag to ensure that the toolbar is in
its correct place. Also added a utility function to query the
necessary offset for the status bar: the function takes care of the iOS
version and orientation caused differences without hardcoding the value
as 20 pixels.


Project: http://git-wip-us.apache.org/repos/asf/cordova-plugin-inappbrowser/repo
Commit: http://git-wip-us.apache.org/repos/asf/cordova-plugin-inappbrowser/commit/4aeaf81e
Tree: http://git-wip-us.apache.org/repos/asf/cordova-plugin-inappbrowser/tree/4aeaf81e
Diff: http://git-wip-us.apache.org/repos/asf/cordova-plugin-inappbrowser/diff/4aeaf81e

Branch: refs/heads/master
Commit: 4aeaf81e1eb3baf474270c2830dacc800792c487
Parents: 20611ef
Author: Peter Somogyvari <peter.somogyvari@mippin.com>
Authored: Mon Nov 18 17:14:19 2013 +0000
Committer: Andrew Grieve <agrieve@chromium.org>
Committed: Fri Dec 13 09:17:11 2013 -0500

----------------------------------------------------------------------
 src/ios/CDVInAppBrowser.m | 17 +++++++++++++----
 1 file changed, 13 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cordova-plugin-inappbrowser/blob/4aeaf81e/src/ios/CDVInAppBrowser.m
----------------------------------------------------------------------
diff --git a/src/ios/CDVInAppBrowser.m b/src/ios/CDVInAppBrowser.m
index 8b5e14d..153ba58 100644
--- a/src/ios/CDVInAppBrowser.m
+++ b/src/ios/CDVInAppBrowser.m
@@ -463,7 +463,7 @@
     self.toolbar = [[UIToolbar alloc] initWithFrame:toolbarFrame];
     self.toolbar.alpha = 1.000;
     self.toolbar.autoresizesSubviews = YES;
-    self.toolbar.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleTopMargin;
+    self.toolbar.autoresizingMask = toolbarIsAtBottom ? (UIViewAutoresizingFlexibleWidth
| UIViewAutoresizingFlexibleTopMargin) : UIViewAutoresizingFlexibleWidth;
     self.toolbar.barStyle = UIBarStyleBlackOpaque;
     self.toolbar.clearsContextBeforeDrawing = NO;
     self.toolbar.clipsToBounds = NO;
@@ -719,12 +719,21 @@
     [super viewWillAppear:animated];
 }
 
+//
+// On iOS 7 the status bar is part of the view's dimensions, therefore it's height has to
be taken into account.
+// The height of it could be hardcoded as 20 pixels, but that would assume that the upcoming
releases of iOS won't
+// change that value.
+//
+- (float) getStatusBarOffset {
+    CGRect statusBarFrame = [[UIApplication sharedApplication] statusBarFrame];
+    float statusBarOffset = IsAtLeastiOSVersion(@"7.0") ? MIN(statusBarFrame.size.width,
statusBarFrame.size.height) : 0.0;
+    return statusBarOffset;
+}
+
 - (void) rePositionViews {
     if ([_browserOptions.toolbarbarposition isEqualToString:kInAppBrowserToolbarBarPositionTop])
{
         [self.webView setFrame:CGRectMake(self.webView.frame.origin.x, TOOLBAR_HEIGHT, self.webView.frame.size.width,
self.webView.frame.size.height)];
-        
-        float offsetForStatusBar = IsAtLeastiOSVersion(@"7.0") ? 21.0 : 0.0;
-        [self.toolbar setFrame:CGRectMake(self.toolbar.frame.origin.x, self.toolbar.frame.origin.y
+ offsetForStatusBar, self.toolbar.frame.size.width, self.toolbar.frame.size.height)];
+        [self.toolbar setFrame:CGRectMake(self.toolbar.frame.origin.x, [self getStatusBarOffset],
self.toolbar.frame.size.width, self.toolbar.frame.size.height)];
     }
 }
 


Mime
View raw message