在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等方法来适配此类情况。