关于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 按钮的点击了。
更改后的图层结构
更改后的图层结构

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值