QMUI_iOS
QMUI_iOS copied to clipboard
在iOS 13默认的modal效果下,导航栏的高度问题
Bug 表现 在iOS 13默认的modal效果下,导航栏的高度是56,非44,但是我在QMUI里没有找到相关的api判断
截图
如何重现 使用iOS 13默认的modal效果
其他信息
- 设备: 模拟器 iPhone 11 Pro
- iOS 版本: iOS 13.0
- Xcode 版本: Xcode 11.0
- QMUI 版本: 4.0.4
目前是这样解决的:
目前 QMUICommonDefines.h 里的宏定义 NavigationBarHeight
在这种情况下是错误的,后续修复。
看到你的示例代码里貌似是在 UIViewController 里,那应该用 UIViewController(QMUI).qmui_navigationBarMaxYInViewCoordinator
更合理?
目前 QMUICommonDefines.h 里的宏定义
NavigationBarHeight
在这种情况下是错误的,后续修复。 看到你的示例代码里貌似是在 UIViewController 里,那应该用UIViewController(QMUI).qmui_navigationBarMaxYInViewCoordinator
更合理?
UIViewController(QMUI).qmui_navigationBarMaxYInViewCoordinator
建议在viewDidLayoutSubviews、viewWillAppear
里使用,我是在initSubviews
里用Masonry布局,用此方法的话还需要在viewDidLayoutSubviews
里再更新一下约束。我们目前业务上也不用适配横屏,所以导航栏高度在此页面中基本是不会变的,所以也无须更新约束,用静态常量值更合适一些。
在这种modal的情况下,可以手势下拉dismiss,此时- (BOOL)shouldPopViewControllerByBackButtonOrPopGesture:(BOOL)byPopGesture
不起作用,因为此方法只处理了push情况下的手势和返回按钮,建议实现UIAdaptivePresentationControllerDelegate
的- (void)presentationControllerDidAttemptToDismiss:(UIPresentationController *)presentationController
,- (BOOL)presentationControllerShouldDismiss:(UIPresentationController *)presentationController
等方法来适配此类情况。