iOS 10, xcode 9.2
as the image shows, the statusbar hides in the front viewcontroller or window? but shows on the back viewcontroller.
i have tried hide statusbar, but both viewcontroller will hide the status.
Actually it's not hidden the background of menu view is white like labels on status bar
bottom view controller is pinned to topLayoutGuide.bottom = 0
top view controller is pinned to superView = 0
see here
after click button
Related
I added these 2 keys to hide status bar:
Status bar is initially hidden = YES
View controller-based status bar appearance = NO
It works great, but I realize that when clicking on the status bar area, we can actually click through the view underneath.
I have a UICollectionView behind the status bar area, and I can actually click on the collection cell. In the picture below, Cell #12 is right above Cell #16, and we can actually tap on upper right corner to trigger didSelectCell(atIndexPath.
How do I disable this "click through" behavior, and bring back the "auto scroll to top" behavior when tapping on status bar?
Try setting the UICollectionView top constraint to be constrained to the parent view safeAreaTopAnchor instead of the parent view topAnchor. That way you have the UICollectionView out of the way of the statusbar
I'm trying to hide tab bar controller when click a button in view, and then show it again when clicking another button. I've checked the code in this link: How to hide tab bar programatically and then expand view to fit but unable to do it.
I need to hide the tab bar controller and expand a UITableView so that there is no empty space where the tab bar is.
Anyone has a solution for this? I'm using Xcode 8 with auto-layout enabled.
I want my tab bar to be translucent and blur the content behind it, but when I set its color to clear color it turns black instead. Currently I have my tab bar created programmatically in the app delegate. I made a class function called getTabBarController and configured my tab bar in there, and I call it in app delegate to return the tab bar. At last, I write
let vc = TabBarInitializer.getTabBarController()
self.window!.rootViewController = vc. Am I creating my tab bar incorrectly? How do I make the tab bar be on top of my content so that the translucent effect works?
You have place view or content behind tabbar which you have to show instead of black.
So when tab transparent, view behind the tabbar become visible.
I've got a gradient background that I want to show through both the navigation bar and the tab bar. I have them set to "translucent black". If I create a ViewController and put a TableView on it, this works perfectly. However, I can't get it to work properly with a TableViewController. The tab bar works fine, but the navigation bar ends up black. If I turn off "Adjust Scroll View Insets", then the navigation bar looks the way I want it, but the top half of the first table view row gets cut off (see examples). The gradient is on the background view. The background colour of the tableview is clear.
Is there any way to get the same effect on a TableViewController? Do I need to somehow make the heading or first row of the tableview be the background that goes under the nav bar?
ViewController with TableView added:
TableViewController with "Adjust Scroll View Insets" ON:
TableViewController with "Adjust Scroll View Insets" OFF:
After doing a test I think you'd need:
Adjusts Scroll View Insets ON
Extend Edges - Under Top Bars ON
No. 1 allow the UITableView to cover the entire screen (including under the navigation bar) and No. 2 adds a space at the top of the UITableView content so that the content is not hidden under the navigation bar.
I ran into a similar issue trying to set a full screen background on a static table view controller with a clear navigation bar. I solved it by using a backgroundView on my tableView instead of setting backgroundColor. For example:
myTableView.backgroundView = UIImageView(image: UIImage(named: "backgroundImg.png"))
I set my navigation bar to clear, but you could style that however you like:
navigationController?.navigationBar.backgroundColor = UIColor.clear
I also had to set Extend Edges - Under Top Bars ON
I have stumbled across a weird problem when implementing a view container which is connected with child view controllers.
The hierarchy is the following:
I have a UISplitViewController and in the MasterViewController I added a view container which is connected to a UIViewController which is embedded in a UINavigationController.
The outcome is the following:
The ChildViewController leaves a white space at the top which seems to be exactly as high as the status bar. How can I avoid that the status bar frame is shown in the child view controller?
I tried to set wantsFullScreenLayout for the ChildViewController and for its UINavigationController but it doesn't change anything.
I also tried to set the y offsets of the views to -20.0 points but that ends up in another problem.
Only when I set status bar hidden for the application it is not shown for the ChildViewController but that in turn also hides the status bar at the top of the UISplitViewController.
Would be glad for some hints.
Basically it looks like the top gap is the status bar. The statusbar at the moment is 'light' colored which is why it's not showing on top of the white background. Try changing the background color of the view controller to black or use one of the appearance callbacks to change the status bar to a darker color.