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

开发中发现,在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 按钮的点击了。
更改后的图层结构
更改后的图层结构

阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/GZgengzhen/article/details/80320518
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

不良信息举报

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

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭