Background
On iOS 18.4 beta, setting a content inset on a WKWebView causes touch events inside the web view to be offset by the content inset amount. In other words, if the web view has a top content inset of 75 points, I must tap 75 points above the intended element for the touch to register correctly. This makes any web content unusable when a content inset is present.
A sample app demonstrating the issue is available here: GitHub - iOS18.4-Webview-Bug.
The issue does not occur in iOS 18.3 or 18.2.
Bug Report
The bug has been reported and fixed at WebKit Bug 289715 and also filed as rdar://147075945.
Question
Will the fix be included in the upcoming iOS 18.4 beta release (Beta 5) or soon thereafter?
Selecting any option will automatically load the page
Post
Replies
Boosts
Views
Activity
Is it possible to modify the accessibility labels of the buttons shown in the Picture In Picture Window?
It currently reads out "Restore Full Screen" but we want it to say "Exit Picture in Picture"
The following way of setting the background color of an anchor tag in Safari on iOS 15 isn't working:
<html>
<head></head>
<body><p><a class="content" href="#"><strong><span>Some content with background</span></strong></a> </p>
<br />
<button onclick="javascript:onClick();">Click me to change content's background color</button>
<script>
function onClick(){
var element = document.getElementsByClassName('content')[0];
element.style.backgroundColor = "#888888";
}
</script>
</body>
</html>
I had to run the following hack after setting the backgroundColor in order for it to work:
// Temporary workaround to redraw the element:
var disp = element.style.display;
element.style.display = 'none';
var trick = element.offsetHeight;
element.style.display = disp;
Video demonstration: https://www.dropbox.com/s/2z4kmsypj4ov4sd/iOS%2015%20webkit%20bug.mov?dl=0
Surely this is a bug in Safari unless I might've missed something?
On iOS 15, when navigating to a view controller that has a transparent navigation bar, the navbar animation isn't working as expected.
It works as expected on iOS versions prior to 15. Please see attached video for iOS 14
Here's a video demonstration:
https://www.dropbox.com/s/80d7qxzhql8fjj2/ios15%20transparent%20navbar%20delay.mov?dl=0
Demo project on Github: https://github.com/karlingen/NavigationTest
This is how I've set up my view controllers:
rootVC
let appearance = UINavigationBarAppearance()
appearance.configureWithDefaultBackground()
appearance.backgroundColor = UIColor.red
self.navigationController?.navigationBar.standardAppearance = appearance
self.navigationController?.navigationBar.scrollEdgeAppearance = self.navigationController?.navigationBar.standardAppearance
firstVC
let appearance = UINavigationBarAppearance()
appearance.configureWithTransparentBackground()
self.navigationController?.navigationBar.standardAppearance = appearance
self.navigationController?.navigationBar.scrollEdgeAppearance = self.navigationController?.navigationBar.standardAppearance
secondVC
let appearance = UINavigationBarAppearance()
appearance.configureWithDefaultBackground()
appearance.backgroundColor = UIColor.yellow
self.navigationController?.navigationBar.standardAppearance = appearance
self.navigationController?.navigationBar.scrollEdgeAppearance = self.navigationController?.navigationBar.standardAppearance
The transition from secondVC to firstVC is smooth (going from yellow to transparent) but not from rootVC to firstVC (going from red to transparent):
Has anyone found a workaround for this?
Our logic for modifying the navigation bar isn't working on devices running iOS 15.1 Beta or simulators running iOS 15.0 on Xcode 13.
When scrolling, we want to change the position of the navigation bar so that it goes off screen to enable a so called fullscreen mode.
Create a scroll view and implement UIScrollViewDelegate
Inside scrollViewDidScroll, modify the Y-position of self.navigationController.navigationBar.frame
Launch the app and scroll vertically
Expected: Navbar is moved off screen when you scroll down and comes back when you scroll up.
Actual: Navbar stays in position at all times.
Workarounds: Use iOS 14 or below
Here are two video demonstrations of Expected VS Actual results:
iOS 14.5: https://www.dropbox.com/s/kplb13taioxrw7g/iOS14.5_scroll.mov?dl=0
iOS 15.0: https://www.dropbox.com/s/uyvy6oxcgi1wj8i/iOS15_scroll.mov?dl=0
Code:
func scrollViewDidScroll(_ scrollView: UIScrollView) {
if let navController = self.navigationController {
var navBarFrame = navController.navigationBar.frame
// Change y-position
let newYPosition = min(0, max(-(navbarHeight), (scrollView.contentOffset.y * -1))) + statusBarHeight
navBarFrame.origin.y = newYPosition
navController.navigationBar.frame = navBarFrame
NSLog("New Y positon: %f", newYPosition)
}
}
And here's the full demo project: https://github.com/karlingen/NavbarHideOnScroll
Is this a bug?