iOS11 系统适配中遇到的问题(1)UIImagePickerController

找到问题根源 之前为了适配iOS11 做了个全局处理 

 // AppDelegate 进行全局设置

if (@available(iOS 11.0, *)){

[[UIScrollView appearance] setContentInsetAdjustmentBehavior:UIScrollViewContentInsetAdjustmentNever];

}

会引起相册UI偏移 , 如果出现问题 解决办法如下:

一。今天在做iOS11的适配工作,发现用户更换头像时 调起相册 iOS11 中的照片向上偏移 被导航栏遮挡,而在iOS10,9 ,8中的表现正常 效果如下图所示:

iOS11中调起相册效果
iOS9中调起相册效果

原程序中的代码如下:

UIImagePickerController* picker = [[UIImagePickerControlleralloc]init];

picker.delegate=self;

picker.allowsEditing=YES;

picker.sourceType=UIImagePickerControllerSourceTypePhotoLibrary;

[selfpresentViewController:pickeranimated:YEScompletion:^{

}];

从这段代码看 没有什么问题,常规的获取相册中的图片操作,这里记录下临时的解决方法:

picker.navigationBar.translucent=NO;

这里将原来导航栏的 半透明效果去除  那么相册的 布局坐标默认就从  导航栏的下面开始,算是临时解决了下

二 .对于html5 中的点击从相册中读取照片上传服务器的操作 , 会出现同样的bug。对于该问题本人通过获取当前屏幕中present出来的viewcontroller 

- (UIViewController*)getPresentedViewController

{

UIViewController*appRootVC = [UIApplicationsharedApplication].keyWindow.rootViewController;

UIViewController*topVC = appRootVC;

if(topVC.presentedViewController) {

topVC = topVC.presentedViewController;

}

returntopVC;

}

然后在 viewWillDisappear 中添加

if([[self getPresentedViewController]isKindOfClass:[UIImagePickerController class]]) {

UIImagePickerController* pickerVC = (UIImagePickerController*)[self getPresentedViewController];

pickerVC.navigationBar.translucent=NO;

}

附上 关于edgesForExtendedLayout浅淡   //www.greatytc.com/p/ca3c5a94c32b

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容