美文网首页
UIContextualAction无色、透明问题

UIContextualAction无色、透明问题

作者: fxxxchao | 来源:发表于2020-07-07 13:45 被阅读0次

UIContextualAction无色、透明问题

在iOS 11中,新增了UIContextualAction用于tableView的侧滑按钮展示,但是在使用过程中,出现了一个很奇怪的问题,UIContextualAction中的imageView在部分机型上无法展示。

通过查看页面的层级,发现imageView是存在的,只是变成了无色、透明。(如图)

截屏2020-07-07 下午12.29.46.png

参考了文章《关于UIContextualAction的Image》的方案,解决了问题。经过测试,iPhone 7 Plus,iOS 13.4.1正常;iPhone 6,iOS 12.4.2有问题。同时作者在文章中进行了以下提示:

iOS11 cell的willTransitionToState方法并不会每次action出来的时候都被调用,iOS10及以下没有问题,而iOS11这里写调整的代码只会起一次作用(可能是Xcode9的bug = =)。iOS10及以下在willTransitionToState的时候调整即可。

其中部分评论说不起作用,应该是使用方式不正确,使用步骤可以参考:

1.新建一个xxxTableView,Subclass of tableView

2.在xxxTableView中粘贴以下代码

3.将UIContextualAction所属的tableView继承xxxTableView

4.再次运行即可看到隐藏的按钮(如图)

截屏2020-07-07 下午12.34.17.png

以下是相关代码:


#define k_ash_action_img [@"__action" hash]

- (void)layoutSubviews {

   [super layoutSubviews];



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

       if (self.editing)

       for (UIView *swipeActionPullView in self.subviews)

       {

           if([swipeActionPullView isKindOfClass:NSClassFromString(@"UISwipeActionPullView")]){

               for (UIView *swipeActionStandardButton in swipeActionPullView.subviews) {

                   if ([swipeActionStandardButton isKindOfClass:NSClassFromString(@"UISwipeActionStandardButton")]) {



                       for (UIImageView *imageView in swipeActionStandardButton.subviews) {

                           if ([imageView isKindOfClass:[UIImageView class]]) {

                               if ([imageView viewWithTag:k_ash_action_img]==nil) {

                                   UIImageView *addedImageView = [[UIImageView alloc] initWithFrame:imageView.bounds];

                                   addedImageView.tag = k_ash_action_img;

                                   addedImageView.image= [imageView.image imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];

                                   [imageView addSubview:addedImageView];

                               }

                               break;

                           }

                       }

                   }

               }

           }

       }

   }

}

相关文章

  • UIContextualAction无色、透明问题

    UIContextualAction无色、透明问题 在iOS 11中,新增了UIContextualAction用...

  • 酱香型白酒该如何评价?

    ①色泽:无色、晶亮透明,清亮透明、莹澈透明,清澈透明,无色透明,无悬浮物,无沉淀。微黄、稍黄、发黄、灰白色、白色、...

  • 如何评价清香型白酒?

    ①色泽:无色、晶亮透明,清亮透明、莹澈透明,清澈透明,无色透明,无悬浮物,无沉淀。微黄、稍黄、较黄、发黄、灰白色、...

  • 家中的一抹蓝

    简洁的圆柱形无色透明玻璃花瓶,就像衣柜必有的基础款牛仔裤,是家居的必备单品。无色透明玻璃内装无色清澈的水,极其简单...

  • iOS UITableView左滑事件

    UISwipeActionsConfiguration-UIContextualAction image.png ...

  • 水生命之泉, 水透明无色。 水可以浇花, ...

  • 白酒知识:轻松掌握优质白酒都是评判方法

    1、优质白酒应该是无色透明 优质白酒色泽是无色透明的,酒内也没有悬浮物体,不会出现浑浊的情况。 2、优质白酒闻...

  • 彩虹宝石

    氟化钙晶体原本无色透明。萤石的晶体结构存在“空洞”,很容易被其他离子填充,所以在自然界中,无色透明的纯净萤石极其稀...

  • 彩虹宝石

    氟化钙晶体原本无色透明。萤石的晶体结构存在“空洞”,很容易被其他离子填充,所以在自然界中,无色透明的纯净萤石极其稀...

  • UIContextualAction image clolor

    UIContextualAction的颜色会变成白色的解决方案 使用: 实现

网友评论

      本文标题:UIContextualAction无色、透明问题

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