记录TZImagePickerController浏览图片 状态栏显示问题
解决使用 TZImagePickerController 查看浏览图片时,遇到状态栏消失情况、
主要是 项目中用到了 FDFullscreenPopGesture的问题,它hook了所有控制器的viewWillDisappear判断了如果fd_prefersNavigationBarHidden是NO就显示导航栏
会影响所有未设置fd_prefersNavigationBarHidden为YES但需要隐藏导航栏的控制器
目前项目中受影响的就是使用第三方查看图片时出现 状态栏消失问题
如果大家不想改动库内部代码,可以参考下面的做法用KVO避免这个问题:
在 TZImagePickerController 初始化的地方 加上这段代码
TZImagePickerController *imagePickerVc = [[TZImagePickerController alloc] initWithMaxImagesCount:1 delegate:self];
imagePickerVc.sortAscendingByModificationDate = NO;
imagePickerVc.allowPickingVideo = NO;
imagePickerVc.allowPickingOriginalPhoto = NO;
[imagePickerVc.navigationBar setBackgroundImage:[UIImage createImageWithColor:LAUIMainColor] forBarMetrics:UIBarMetricsDefault];
imagePickerVc.modalPresentationStyle = UIModalPresentationFullScreen;
imagePickerVc.title = @"相册";
[self presentViewController:imagePickerVc animated:YES completion:nil];
// 监听TZImagePickerController导航栏的显示与否
[imagePickerVc addObserver:self forKeyPath:@"navigationBar.hidden" options:NSKeyValueObservingOptionNew context:nil];
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary<NSKeyValueChangeKey,id> *)change context:(void *)context {
if ([keyPath isEqualToString:@"navigationBar.hidden"] && [object isKindOfClass:[TZImagePickerController class]]) {
TZImagePickerController *tzImagePicker = (TZImagePickerController *)object;
// 当前在预览页面,且导航栏显示着(被FD等第三方库打开了),再隐藏下导航栏
if ([tzImagePicker.topViewController isKindOfClass:[TZPhotoPreviewController class]] && [change[NSKeyValueChangeNewKey] intValue] == 0) {
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
[tzImagePicker setNavigationBarHidden:YES];
});
}
}
}
通过监听TZImagePickerController导航栏是否显示,监听当前在预览页面,且导航栏显示着(被FD等第三方库打开了),再隐藏下导航栏,
操作后的效果
原文地址:https://blog.csdn.net/u011043997/article/details/123379999
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_25428.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。