在view.layer 添加的layer需要删除的正确方法

因为添加到view.layer 的layer 会直接添加到如下数组中:


在view.layer 添加的layer需要删除的正确方法_第1张图片
屏幕快照 2019-12-02 上午9.56.34.png

这个数组是不可变数组

你要删除添加的layer,遍历这个数组,用removeFromSuperlayer 这个方法 会导致奔溃,因为这个不是可变数组

想要删除,用下面正确的方法

NSMutableArray *mutableArray = [view.layer.sublayers mutableCopy];
        for (CALayer *layer in mutableArray) {
            if ([layer isKindOfClass:[CAGradientLayer class]]) {
                [layer removeFromSuperlayer];
                break;
            }
        }
        view.layer.sublayers = array;

这样不会导致奔溃

你可能感兴趣的:(在view.layer 添加的layer需要删除的正确方法)