UIView掩码抛出[CALayer retain]:消息发送到解除分配的实例

时间:2015-08-05 14:37:32

标签: ios objective-c uiview

当我第一次指定一个面具时,在UIView上,它可以正常工作。

CALayer *maskLayer = self.bgViewMask.layer;
self.collectionView.layer.mask = maskLayer;

但是当我通过执行以下操作删除它并重新分配它时,它会抛出异常。

self.collectionView.layer.mask = nil;

我希望它是因为当我通过分配nil删除它时,它还会释放bgViewMask,因此它会抛出异常。有人可以帮我吗。

1 个答案:

答案 0 :(得分:0)

我认为这是因为你将self.bgViewMask.layer设为零。因此,您需要为collectionView创建一个新图层:

self.collectionView.layer.mask = [[CALayer alloc] initWithLayer:self.bgViewMask.layer];