This is an automated email from the ASF dual-hosted git repository.
manuelbeck pushed a commit to branch master
in repository
https://gitbox.apache.org/repos/asf/cordova-plugin-inappbrowser.git
The following commit(s) were added to refs/heads/master by this push:
new 375c02b fix(ios): use auto layout to respect safe areas (#1099)
375c02b is described below
commit 375c02b1782e4386cbfdced6e6c06798936001a0
Author: Manuel Beck <[email protected]>
AuthorDate: Wed Jan 28 18:49:03 2026 +0100
fix(ios): use auto layout to respect safe areas (#1099)
- The toolbar didn't respect the safe areas, because it was using manual
frames and the web view’s frame was also adjusted manually. This bypassed the
safe area system, so the toolbar can end up under the home indicator or the
items can be too close to it.
- Don't set height manual for toolbar and adresslabel, let auto layout
decide. This aligns the toolbar better on iOS 26 with the new button layout.
- Remove code which was related to manual layout
---
src/ios/CDVWKInAppBrowser.m | 408 ++++++++++++++++++--------------------------
1 file changed, 169 insertions(+), 239 deletions(-)
diff --git a/src/ios/CDVWKInAppBrowser.m b/src/ios/CDVWKInAppBrowser.m
index 716b883..26e44bb 100644
--- a/src/ios/CDVWKInAppBrowser.m
+++ b/src/ios/CDVWKInAppBrowser.m
@@ -31,10 +31,6 @@
#define IAB_BRIDGE_NAME @"cordova_iab"
-#define TOOLBAR_HEIGHT 44.0
-#define LOCATIONBAR_HEIGHT 21.0
-#define FOOTER_HEIGHT ((TOOLBAR_HEIGHT) + (LOCATIONBAR_HEIGHT))
-
#pragma mark CDVWKInAppBrowser
@implementation CDVWKInAppBrowser
@@ -479,7 +475,7 @@ static CDVWKInAppBrowser* instance = nil;
}
if(errorMessage != nil){
- NSLog(errorMessage);
+ NSLog(@"%@", errorMessage);
CDVPluginResult* pluginResult = [CDVPluginResult
resultWithStatus:CDVCommandStatus_ERROR
messageAsDictionary:@{@"type":@"loaderror", @"url":[url absoluteString],
@"code": @"-1", @"message": errorMessage}];
[pluginResult setKeepCallback:[NSNumber numberWithBool:YES]];
@@ -663,21 +659,15 @@ BOOL isExiting = FALSE;
- (void)createViews
{
// We create the views in code for primarily for ease of upgrades and not
requiring an external .xib to be included
-
- CGRect webViewBounds = self.view.bounds;
- BOOL toolbarIsAtBottom = ![_browserOptions.toolbarposition
isEqualToString:kInAppBrowserToolbarBarPositionTop];
- webViewBounds.size.height -= _browserOptions.location ? FOOTER_HEIGHT :
TOOLBAR_HEIGHT;
WKUserContentController* userContentController = [[WKUserContentController
alloc] init];
-
WKWebViewConfiguration* configuration = [[WKWebViewConfiguration alloc]
init];
-
NSString *userAgent = configuration.applicationNameForUserAgent;
- if (
- [self settingForKey:@"OverrideUserAgent"] == nil &&
- [self settingForKey:@"AppendUserAgent"] != nil
- ) {
+
+ if ([self settingForKey:@"OverrideUserAgent"] == nil &&
+ [self settingForKey:@"AppendUserAgent"] != nil) {
userAgent = [NSString stringWithFormat:@"%@ %@", userAgent, [self
settingForKey:@"AppendUserAgent"]];
}
+
configuration.applicationNameForUserAgent = userAgent;
configuration.userContentController = userContentController;
#if __has_include(<Cordova/CDVWebViewProcessPoolFactory.h>)
@@ -690,9 +680,10 @@ BOOL isExiting = FALSE;
//WKWebView options
configuration.allowsInlineMediaPlayback =
_browserOptions.allowinlinemediaplayback;
configuration.ignoresViewportScaleLimits =
_browserOptions.enableviewportscale;
- if(_browserOptions.mediaplaybackrequiresuseraction == YES){
+
+ if(_browserOptions.mediaplaybackrequiresuseraction == YES) {
configuration.mediaTypesRequiringUserActionForPlayback =
WKAudiovisualMediaTypeAll;
- }else{
+ } else {
configuration.mediaTypesRequiringUserActionForPlayback =
WKAudiovisualMediaTypeNone;
}
@@ -706,8 +697,7 @@ BOOL isExiting = FALSE;
}
-
- self.webView = [[WKWebView alloc] initWithFrame:webViewBounds
configuration:configuration];
+ self.webView = [[WKWebView alloc] initWithFrame:CGRectZero
configuration:configuration];
#if __IPHONE_OS_VERSION_MAX_ALLOWED >= 160400
// With the introduction of iOS 16.4 the webview is no longer inspectable
by default.
@@ -723,61 +713,18 @@ BOOL isExiting = FALSE;
}
#endif
-
[self.view addSubview:self.webView];
+ // The webview should be behind the other elements like toolbar,
addresslabel, spinner
+ // Since the webview is added first, this is already the case.
+ // sendSubviewToBack is normally not necessary
[self.view sendSubviewToBack:self.webView];
-
-
- self.webView.navigationDelegate = self;
- self.webView.UIDelegate = self.webViewUIDelegate;
- self.webView.backgroundColor = [UIColor whiteColor];
- if ([self settingForKey:@"OverrideUserAgent"] != nil) {
- self.webView.customUserAgent = [self
settingForKey:@"OverrideUserAgent"];
- }
-
- self.webView.clearsContextBeforeDrawing = YES;
- self.webView.clipsToBounds = YES;
- self.webView.contentMode = UIViewContentModeScaleToFill;
- self.webView.multipleTouchEnabled = YES;
- self.webView.opaque = YES;
- self.webView.userInteractionEnabled = YES;
- self.automaticallyAdjustsScrollViewInsets = YES ;
- [self.webView setAutoresizingMask:UIViewAutoresizingFlexibleHeight |
UIViewAutoresizingFlexibleWidth];
- self.webView.allowsLinkPreview = NO;
- self.webView.allowsBackForwardNavigationGestures = NO;
-
- [self.webView.scrollView
setContentInsetAdjustmentBehavior:UIScrollViewContentInsetAdjustmentNever];
-
- self.spinner = [[UIActivityIndicatorView alloc]
initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray];
- self.spinner.alpha = 1.000;
- self.spinner.autoresizesSubviews = YES;
- self.spinner.autoresizingMask = (UIViewAutoresizingFlexibleLeftMargin |
UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleBottomMargin |
UIViewAutoresizingFlexibleRightMargin);
- self.spinner.clearsContextBeforeDrawing = NO;
- self.spinner.clipsToBounds = NO;
- self.spinner.contentMode = UIViewContentModeScaleToFill;
- self.spinner.frame = CGRectMake(CGRectGetMidX(self.webView.frame),
CGRectGetMidY(self.webView.frame), 20.0, 20.0);
- self.spinner.hidden = NO;
- self.spinner.hidesWhenStopped = YES;
- self.spinner.multipleTouchEnabled = NO;
- self.spinner.opaque = NO;
- self.spinner.userInteractionEnabled = NO;
- [self.spinner stopAnimating];
-
- self.closeButton = [[UIBarButtonItem alloc]
initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self
action:@selector(close)];
- self.closeButton.enabled = YES;
-
- UIBarButtonItem* flexibleSpaceButton = [[UIBarButtonItem alloc]
initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil
action:nil];
-
- UIBarButtonItem* fixedSpaceButton = [[UIBarButtonItem alloc]
initWithBarButtonSystemItem:UIBarButtonSystemItemFixedSpace target:nil
action:nil];
- fixedSpaceButton.width = 20;
-
- float toolbarY = toolbarIsAtBottom ? self.view.bounds.size.height -
TOOLBAR_HEIGHT : 0.0;
- CGRect toolbarFrame = CGRectMake(0.0, toolbarY,
self.view.bounds.size.width, TOOLBAR_HEIGHT);
-
- self.toolbar = [[UIToolbar alloc] initWithFrame:toolbarFrame];
+
+ // We add our own constraints, they should not be determined from the frame
+ self.webView.translatesAutoresizingMaskIntoConstraints = NO;
+
+ // Toolbar init without frame
+ self.toolbar = [[UIToolbar alloc] init];
self.toolbar.alpha = 1.000;
- self.toolbar.autoresizesSubviews = YES;
- self.toolbar.autoresizingMask = toolbarIsAtBottom ?
(UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleTopMargin) :
UIViewAutoresizingFlexibleWidth;
self.toolbar.barStyle = UIBarStyleBlackOpaque;
self.toolbar.clearsContextBeforeDrawing = NO;
self.toolbar.clipsToBounds = NO;
@@ -792,15 +739,13 @@ BOOL isExiting = FALSE;
if (!_browserOptions.toolbartranslucent) { // Set toolbar translucent to
no if user sets it in options
self.toolbar.translucent = NO;
}
-
- CGFloat labelInset = 5.0;
- float locationBarY = toolbarIsAtBottom ? self.view.bounds.size.height -
FOOTER_HEIGHT : self.view.bounds.size.height - LOCATIONBAR_HEIGHT;
-
- self.addressLabel = [[UILabel alloc] initWithFrame:CGRectMake(labelInset,
locationBarY, self.view.bounds.size.width - labelInset, LOCATIONBAR_HEIGHT)];
+ [self.view addSubview:self.toolbar];
+ // We add our own constraints, they should not be determined from the frame
+ self.toolbar.translatesAutoresizingMaskIntoConstraints = NO;
+
+ self.addressLabel = [[UILabel alloc] init];
self.addressLabel.adjustsFontSizeToFitWidth = NO;
self.addressLabel.alpha = 1.000;
- self.addressLabel.autoresizesSubviews = YES;
- self.addressLabel.autoresizingMask = UIViewAutoresizingFlexibleWidth |
UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleTopMargin;
self.addressLabel.backgroundColor = [UIColor clearColor];
self.addressLabel.baselineAdjustment = UIBaselineAdjustmentAlignCenters;
self.addressLabel.clearsContextBeforeDrawing = YES;
@@ -824,6 +769,32 @@ BOOL isExiting = FALSE;
self.addressLabel.textAlignment = NSTextAlignmentLeft;
self.addressLabel.textColor = [UIColor colorWithWhite:1.000 alpha:1.000];
self.addressLabel.userInteractionEnabled = NO;
+ [self.view addSubview:self.addressLabel];
+ // We add our own constraints, they should not be determined from the frame
+ self.addressLabel.translatesAutoresizingMaskIntoConstraints = NO;
+
+ self.spinner = [[UIActivityIndicatorView alloc]
initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray];
+ self.spinner.alpha = 1.000;
+ self.spinner.clearsContextBeforeDrawing = NO;
+ self.spinner.clipsToBounds = NO;
+ self.spinner.contentMode = UIViewContentModeScaleToFill;
+ self.spinner.hidden = NO;
+ self.spinner.hidesWhenStopped = YES;
+ self.spinner.multipleTouchEnabled = NO;
+ self.spinner.opaque = NO;
+ self.spinner.userInteractionEnabled = NO;
+ [self.spinner stopAnimating];
+ [self.view addSubview:self.spinner];
+ // We add our own constraints, they should not be determined from the frame
+ self.spinner.translatesAutoresizingMaskIntoConstraints = NO;
+
+ self.closeButton = [[UIBarButtonItem alloc]
initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self
action:@selector(close)];
+ self.closeButton.enabled = YES;
+
+ UIBarButtonItem* flexibleSpaceButton = [[UIBarButtonItem alloc]
initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil
action:nil];
+
+ UIBarButtonItem* fixedSpaceButton = [[UIBarButtonItem alloc]
initWithBarButtonSystemItem:UIBarButtonSystemItemFixedSpace target:nil
action:nil];
+ fixedSpaceButton.width = 20;
NSString* frontArrowString = NSLocalizedString(@"►", nil); // create arrow
from Unicode char
self.forwardButton = [[UIBarButtonItem alloc]
initWithTitle:frontArrowString style:UIBarButtonItemStylePlain target:self
action:@selector(goForward:)];
@@ -853,11 +824,117 @@ BOOL isExiting = FALSE;
} else {
[self.toolbar setItems:@[self.closeButton, flexibleSpaceButton,
self.backButton, fixedSpaceButton, self.forwardButton]];
}
+
+ self.webView.navigationDelegate = self;
+ self.webView.UIDelegate = self.webViewUIDelegate;
+ self.webView.backgroundColor = [UIColor whiteColor];
+ if ([self settingForKey:@"OverrideUserAgent"] != nil) {
+ self.webView.customUserAgent = [self
settingForKey:@"OverrideUserAgent"];
+ }
- self.view.backgroundColor = [UIColor clearColor];
- [self.view addSubview:self.toolbar];
- [self.view addSubview:self.addressLabel];
- [self.view addSubview:self.spinner];
+ self.webView.clearsContextBeforeDrawing = YES;
+ self.webView.clipsToBounds = YES;
+ self.webView.contentMode = UIViewContentModeScaleToFill;
+ self.webView.multipleTouchEnabled = YES;
+ self.webView.opaque = YES;
+ self.webView.userInteractionEnabled = YES;
+ self.webView.allowsLinkPreview = NO;
+ self.webView.allowsBackForwardNavigationGestures = NO;
+
+ // Setup Auto Layout constraints
+ //
+ // Setup horizontal constraints
+ // WebView horizontal constraints
+ [NSLayoutConstraint activateConstraints:@[
+ [self.webView.leadingAnchor
constraintEqualToAnchor:self.view.safeAreaLayoutGuide.leadingAnchor],
+ [self.webView.trailingAnchor
constraintEqualToAnchor:self.view.safeAreaLayoutGuide.trailingAnchor]
+ ]];
+
+ // Toolbar horizontal constraints
+ [NSLayoutConstraint activateConstraints:@[
+ [self.toolbar.leadingAnchor
constraintEqualToAnchor:self.view.leadingAnchor],
+ [self.toolbar.trailingAnchor
constraintEqualToAnchor:self.view.trailingAnchor]
+ ]];
+
+ // Address label horizontal constraints
+ [NSLayoutConstraint activateConstraints:@[
+ [self.addressLabel.leadingAnchor
constraintEqualToAnchor:self.view.leadingAnchor constant:5.0],
+ [self.addressLabel.trailingAnchor
constraintEqualToAnchor:self.view.trailingAnchor constant:-5.0]
+ ]];
+
+ // Define vertical constraints, in order from top to bottom
+ // The addresslabel and toolbar are optional
+ UILayoutGuide *safeArea = self.view.safeAreaLayoutGuide;
+ BOOL toolbarIsAtTop = [_browserOptions.toolbarposition
isEqualToString:kInAppBrowserToolbarBarPositionTop];
+ BOOL toolbarVisible = _browserOptions.toolbar;
+ BOOL addressLabelVisible = _browserOptions.location;
+
+ // Center spinner in webview
+ [self.spinner.centerXAnchor
constraintEqualToAnchor:self.webView.centerXAnchor].active = YES;
+ [self.spinner.centerYAnchor
constraintEqualToAnchor:self.webView.centerYAnchor].active = YES;
+
+ // Toolbar can be at top
+ if (toolbarIsAtTop) {
+ // Toolbar visible
+ if (toolbarVisible) {
+ // Toolbar top to safearea top
+ [self.toolbar.topAnchor
constraintEqualToAnchor:safeArea.topAnchor].active = YES;
+ // Webview top to toolbar bottom
+ [self.webView.topAnchor
constraintEqualToAnchor:self.toolbar.bottomAnchor].active = YES;
+
+ // Toolbar not visible
+ } else {
+ // Webview top to safearea top
+ [self.webView.topAnchor
constraintEqualToAnchor:safeArea.topAnchor].active = YES;
+ }
+
+ if (addressLabelVisible) {
+ // Adresslabel top to webview bottom
+ [self.addressLabel.topAnchor
constraintEqualToAnchor:self.webView.bottomAnchor].active = YES;
+ // Adresslabel bottom to safearea bottom
+ [self.addressLabel.bottomAnchor
constraintEqualToAnchor:safeArea.bottomAnchor].active = YES;
+
+ // Addresslbale hidden
+ } else {
+ // Webview to view bottom
+ [self.webView.bottomAnchor
constraintEqualToAnchor:self.view.bottomAnchor].active = YES;
+ }
+
+ // Toolbar can be at bottom
+ } else {
+ // Webview top to safearea top
+ [self.webView.topAnchor
constraintEqualToAnchor:safeArea.topAnchor].active = YES;
+
+ if (addressLabelVisible) {
+ // Webview bottom to addresslabel top
+ [self.webView.bottomAnchor
constraintEqualToAnchor:self.addressLabel.topAnchor].active = YES;
+
+ // Addresslabel bottom to toolbar top
+ if (toolbarVisible) {
+ [self.addressLabel.bottomAnchor
constraintEqualToAnchor:self.toolbar.topAnchor].active = YES;
+
+ // Addresslabel bottom to safeare bottom
+ } else {
+ [self.addressLabel.bottomAnchor
constraintEqualToAnchor:safeArea.bottomAnchor].active = YES;
+ }
+
+ // Addresslabel hidden
+ } else {
+ // Webview bottom to toolbar top
+ if (toolbarVisible) {
+ [self.webView.bottomAnchor
constraintEqualToAnchor:self.toolbar.topAnchor].active = YES;
+
+ // Webview bottom to view bottom
+ } else {
+ [self.webView.bottomAnchor
constraintEqualToAnchor:self.view.bottomAnchor].active = YES;
+ }
+ }
+
+ // Toolbar bottom to safeArea bottom
+ if (toolbarVisible) {
+ [self.toolbar.bottomAnchor
constraintEqualToAnchor:safeArea.bottomAnchor].active = YES;
+ }
+ }
}
- (id)settingForKey:(NSString*)key
@@ -888,114 +965,17 @@ BOOL isExiting = FALSE;
- (void)showLocationBar:(BOOL)show
{
- CGRect locationbarFrame = self.addressLabel.frame;
-
- BOOL toolbarVisible = !self.toolbar.hidden;
-
- // prevent double show/hide
- if (show == !(self.addressLabel.hidden)) {
- return;
- }
-
- if (show) {
- self.addressLabel.hidden = NO;
-
- if (toolbarVisible) {
- // toolBar at the bottom, leave as is
- // put locationBar on top of the toolBar
-
- CGRect webViewBounds = self.view.bounds;
- webViewBounds.size.height -= FOOTER_HEIGHT;
- [self setWebViewFrame:webViewBounds];
-
- locationbarFrame.origin.y = webViewBounds.size.height;
- self.addressLabel.frame = locationbarFrame;
- } else {
- // no toolBar, so put locationBar at the bottom
-
- CGRect webViewBounds = self.view.bounds;
- webViewBounds.size.height -= LOCATIONBAR_HEIGHT;
- [self setWebViewFrame:webViewBounds];
-
- locationbarFrame.origin.y = webViewBounds.size.height;
- self.addressLabel.frame = locationbarFrame;
- }
- } else {
- self.addressLabel.hidden = YES;
-
- if (toolbarVisible) {
- // locationBar is on top of toolBar, hide locationBar
-
- // webView take up whole height less toolBar height
- CGRect webViewBounds = self.view.bounds;
- webViewBounds.size.height -= TOOLBAR_HEIGHT;
- [self setWebViewFrame:webViewBounds];
- } else {
- // no toolBar, expand webView to screen dimensions
- [self setWebViewFrame:self.view.bounds];
- }
- }
+ self.addressLabel.hidden = !show;
+ [self.view setNeedsLayout];
+ [self.view layoutIfNeeded];
}
- (void)showToolBar:(BOOL)show : (NSString *) toolbarPosition
{
- CGRect toolbarFrame = self.toolbar.frame;
- CGRect locationbarFrame = self.addressLabel.frame;
-
- BOOL locationbarVisible = !self.addressLabel.hidden;
-
- // prevent double show/hide
- if (show == !(self.toolbar.hidden)) {
- return;
- }
-
- if (show) {
- self.toolbar.hidden = NO;
- CGRect webViewBounds = self.view.bounds;
-
- if (locationbarVisible) {
- // locationBar at the bottom, move locationBar up
- // put toolBar at the bottom
- webViewBounds.size.height -= FOOTER_HEIGHT;
- locationbarFrame.origin.y = webViewBounds.size.height;
- self.addressLabel.frame = locationbarFrame;
- self.toolbar.frame = toolbarFrame;
- } else {
- // no locationBar, so put toolBar at the bottom
- CGRect webViewBounds = self.view.bounds;
- webViewBounds.size.height -= TOOLBAR_HEIGHT;
- self.toolbar.frame = toolbarFrame;
- }
-
- if ([toolbarPosition
isEqualToString:kInAppBrowserToolbarBarPositionTop]) {
- toolbarFrame.origin.y = 0;
- webViewBounds.origin.y += toolbarFrame.size.height;
- [self setWebViewFrame:webViewBounds];
- } else {
- toolbarFrame.origin.y = (webViewBounds.size.height +
LOCATIONBAR_HEIGHT);
- }
- [self setWebViewFrame:webViewBounds];
-
- } else {
- self.toolbar.hidden = YES;
-
- if (locationbarVisible) {
- // locationBar is on top of toolBar, hide toolBar
- // put locationBar at the bottom
-
- // webView take up whole height less locationBar height
- CGRect webViewBounds = self.view.bounds;
- webViewBounds.size.height -= LOCATIONBAR_HEIGHT;
- [self setWebViewFrame:webViewBounds];
-
- // move locationBar down
- locationbarFrame.origin.y = webViewBounds.size.height;
- self.addressLabel.frame = locationbarFrame;
- } else {
- // no locationBar, expand webView to screen dimensions
- [self setWebViewFrame:self.view.bounds];
- }
- }
+ self.toolbar.hidden = !show;
+ _browserOptions.toolbarposition = toolbarPosition; // keep state
consistent if needed
+ [self.view setNeedsLayout];
+ [self.view layoutIfNeeded];
}
- (void)viewDidLoad
@@ -1070,38 +1050,6 @@ BOOL isExiting = FALSE;
[self.webView goForward];
}
-- (void)viewWillAppear:(BOOL)animated
-{
- [self rePositionViews];
-
- [super viewWillAppear:animated];
-}
-
-- (float) getStatusBarOffset {
- return (float) [[UIApplication sharedApplication]
statusBarFrame].size.height;
-}
-
-- (void) rePositionViews {
- CGRect viewBounds = [self.webView bounds];
- CGFloat statusBarHeight = [self getStatusBarOffset];
-
- // orientation portrait or portraitUpsideDown: status bar is on the top
and web view is to be aligned to the bottom of the status bar
- // orientation landscapeLeft or landscapeRight: status bar height is 0 in
but lets account for it in case things ever change in the future
- viewBounds.origin.y = statusBarHeight;
-
- // account for web view height portion that may have been reduced by a
previous call to this method
- viewBounds.size.height = viewBounds.size.height - statusBarHeight +
lastReducedStatusBarHeight;
- lastReducedStatusBarHeight = statusBarHeight;
-
- if ((_browserOptions.toolbar) && ([_browserOptions.toolbarposition
isEqualToString:kInAppBrowserToolbarBarPositionTop])) {
- // if we have to display the toolbar on top of the web view, we need
to account for its height
- viewBounds.origin.y += TOOLBAR_HEIGHT;
- self.toolbar.frame = CGRectMake(self.toolbar.frame.origin.x,
statusBarHeight, self.toolbar.frame.size.width, self.toolbar.frame.size.height);
- }
-
- self.webView.frame = viewBounds;
-}
-
// Helper function to convert hex color string to UIColor
// Assumes input like "#00FF00" (#RRGGBB).
// Taken from
https://stackoverflow.com/questions/1560081/how-can-i-create-a-uicolor-from-a-hex-string
@@ -1115,19 +1063,14 @@ BOOL isExiting = FALSE;
#pragma mark WKNavigationDelegate
-- (void)webView:(WKWebView *)theWebView
didStartProvisionalNavigation:(WKNavigation *)navigation{
-
+- (void)webView:(WKWebView *)theWebView
didStartProvisionalNavigation:(WKNavigation *)navigation
+{
// loading url, start spinner, update back/forward
-
self.addressLabel.text = NSLocalizedString(@"Loading...", nil);
self.backButton.enabled = theWebView.canGoBack;
self.forwardButton.enabled = theWebView.canGoForward;
- NSLog(_browserOptions.hidespinner ? @"Yes" : @"No");
- if(!_browserOptions.hidespinner) {
- [self.spinner startAnimating];
- }
-
+ if(!_browserOptions.hidespinner) [self.spinner startAnimating];
return [self.navigationDelegate didStartProvisionalNavigation:theWebView];
}
@@ -1210,19 +1153,6 @@ BOOL isExiting = FALSE;
return 1 << UIInterfaceOrientationPortrait;
}
-- (void)viewWillTransitionToSize:(CGSize)size
withTransitionCoordinator:(id<UIViewControllerTransitionCoordinator>)coordinator
-{
- [coordinator
animateAlongsideTransition:^(id<UIViewControllerTransitionCoordinatorContext>
context)
- {
- [self rePositionViews];
- } completion:^(id<UIViewControllerTransitionCoordinatorContext> context)
- {
-
- }];
-
- [super viewWillTransitionToSize:size
withTransitionCoordinator:coordinator];
-}
-
#pragma mark UIAdaptivePresentationControllerDelegate
- (void)presentationControllerWillDismiss:(UIPresentationController
*)presentationController {
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]