Noah . , , , layer.mask CALayer. , UIImageViews .
CALayer *_layerImage = _imageViewBackground.layer;
CGRect _rect = _imageViewBackground.bounds;
__block CAGradientLayer *_maskLayer = nil;
[_layerImage.sublayers enumerateObjectsUsingBlock:^(CALayer * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
if ([obj isKindOfClass:[CAGradientLayer class]]) {
_maskLayer = (CAGradientLayer*) obj;
*stop = YES;
}
}];
BOOL _found = YES;
if (!_maskLayer) {
_maskLayer = [CAGradientLayer layer];
_found = NO;
}
_maskLayer.colors = @[ (id)([UIColor redColor].CGColor), (id)([UIColor clearColor].CGColor) ];
_maskLayer.startPoint = CGPointMake(0, 0);
_maskLayer.endPoint = CGPointMake(1, 1);
_maskLayer.frame = _rect;
dispatch_async(dispatch_get_main_queue(), ^{
if (!_found) {
[_layerImage addSublayer:_maskLayer];
}
});
Hope this helps!
source
share