iOS开发中填坑工具iOS开发

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

2017-11-22  本文已影响769人  Farmers

找到问题根源 之前为了适配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浅淡   http://www.jianshu.com/p/ca3c5a94c32b

上一篇 下一篇

猜你喜欢

热点阅读