MessageViewController
MessageViewController copied to clipboard
Insets not respecting tabBarController height
Repost of #70
Is there any way to make MessageViewController respect the tabBar (if you have one?)
The only way I found for it to adjust for the tab bar is with
tabBarController?.tabBar.isHidden = true
However if you use something like (animatable)
tabBarController?.tabBar.frame.origin = CGPoint(x: 0, y: frameHeight - tabBarHeight)
The messageView
will still show the extra 49pts of tabbarheight
As shown in the below photo, when I used
tabBarController?.tabBar.frame.origin = CGPoint(x: 0, y: frameHeight - tabBarHeight)
The message view is
135pt (34pt safe area + 49pt tab bar + [52pt messageView.textInputView]) when it should be 86pt (34pt safe area + [52pt messageView.textInputView])
To make it work temporarily I edited MessageViewController
(which I know I shouldn't!)
internal var safeAreaAdditionalHeight: CGFloat {
switch keyboardState {
//EDITED
case .hiding, .resigned: return view.util_safeAreaInsets.bottom - (49) //EDITED TO ACCOUNT FOR TABBAR
case .showing, .visible: return 0
}
}
Is the error that the tab bar insets are being added in the safe area insets method? Like the tab height is included in the inset bottom?
Sent with GitHawk
Yes I think so.
When I print(view.safeAreaInsets.bottom)
in override func viewDidLayoutSubviews()
it returns 83.0 (on iPhone X)
I guess this kind of makes sense since collectionView
's/etc. natively respect top NavigationBar
and TabBar
insets.
You have to do something like collectionView.contentInsetAdjustmentBehavior = .never
to turn that off. So not sure if you'd have to do something similar to the inputAccessoryView
?