I downloaded the Xcode 8 beta and was trying to play around with the iMessages app extension sdk but ran into an issue with their seemingly nonstandard nav bar height
when i transition into the app's expanded view, my image with the following frame CGRect(x: 0, y: 0, width: 100, height: 100)
ends up partially hidden behind the nav bar. i would like it to appear below the nav bar.
i tried self.navigationController?.navigationBar.isTranslucent = false
but it didn't work, which i guess makes sense since it's out of my app's scope to control.
has anyone played around with this yet? i want to avoid 2 things. simply guessing the appropriate height and moving away from a programmatic solution. thanks for the help
It may help to have a constraint with the top layout guide like so:
view.topAnchor.constraint(equalTo: self.topLayoutGuide.bottomAnchor).isActive = true
You can get the height from controller's layout guide:
self.topLayoutGuide.length
The reason why @Dilts's demo works is because the labels' top are constraint to the top layout guide. If they are constraint to the superview, then it will also go behind the bar.
If you are like me and still find Auto Layout
hard to use, then you can use the viewDidLayoutSubviews
method to automatically adjust the view size. I have a table view with the same issue as you, so I used this simple method to change the table view's top side content inset:
-(void)viewDidLayoutSubviews {
[self.tableView setContentInset:UIEdgeInsetsMake(self.topLayoutGuide.length, 0, 0, 0)];
}
So far it works fine (in both portrait and landscape) on all iDevices.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With