美文网首页
关于IOS 11 下,图片编辑界面左下角的cancel 按钮很难

关于IOS 11 下,图片编辑界面左下角的cancel 按钮很难

作者: zzsunboy | 来源:发表于2019-08-16 11:26 被阅读0次

开发中发现,在iOS 11系统下,苹果提供的imagePickerViewController在push进入图片编辑界面PUPhotoPickerHostViewController后,左下角的cancel按钮很难被点击到。

经过反复查看xcode上视图层级结构发现:在iOS11系统下,进入图片编辑界面后,最上层会出现一个细长条的遮盖view(不知道什么原因),是该view遮盖住了左下方的按钮导致按钮很难点击。

下面提供解决方案

由于该遮盖view在不同设备上显示的尺寸不同,因此通过一个宽度的范围去定位该view,然后改变该view的图层结构

iphone 6 上该view的frame为 (0,0,33.75,667)

iphone 6P 上该view的frame为 (0,0,41.400000000000006, 736)

iphone X 上该view的frame为 (0,0,33.75,812)

iPad 上该view的frame为 (0,0,13,768)

更改前的图层

代码如下

-(void)navigationController:(UINavigationController *)navigationController didShowViewController:(UIViewController *)viewController animated:(BOOL)animated

{

    if ([UIDevice currentDevice].systemVersion.floatValue < 11)

    {

        return;

    }

    if ([viewController isKindOfClass:NSClassFromString(@"PUPhotoPickerHostViewController")])

    {

        [viewController.view.subviews enumerateObjectsUsingBlock:^(__kindof UIView * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop)

        {

            // iOS 11之后,图片编辑界面最上层会出现一个宽度<42的view,会遮盖住左下方的cancel按钮,使cancel按钮很难被点击到,故改变该view的层级结构

            if (obj.frame.size.width < 42)

            {

                [viewController.view sendSubviewToBack:obj];

                *stop = YES;

            }

        }];

    }

}



这样更改后,该遮盖view会被放在下面一层而不是最上层,就不会影响cancel 按钮的点击了。 

更改后的图层结构 

相关文章

网友评论

      本文标题:关于IOS 11 下,图片编辑界面左下角的cancel 按钮很难

      本文链接:https://www.haomeiwen.com/subject/ljdbqttx.html