Я искал высоко и низко и, наконец, нашел решение практически без ограничений. Итак, поехали:
UIImageView *maskeeImage = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"MaskeeImage.png"]];
[maskeeImage setAnimationRepeatCount:-1];
[maskeeImage setAnimationImages:[[NSArray alloc] initWithObjects:[UIImage imageNamed:@"MaskeeImage1.png"], [UIImage imageNamed:@"MaskeeImage2.png"], [UIImage imageNamed:@"MaskeeImage3.png"], nil]];
[maskeeImage startAnimating];
CALayer *maskeeLayer = [maskeeImage layer];
maskeeLayer = CGRectMake(0, 0, 768, 1004);
[[[self view] layer] addSublayer:maskeeLayer];
UIImage *maskImage = [UIImage imageNamed:@"ImageMask.png"];
CALayer *maskLayer = [CALayer layer];
maskLayer.contents = (id) myImageMask.CGImage;
maskLayer.frame = CGRectMake(0, 0, 768, 1004);
[maskeeLayer setMask:maskLayer];
Вот, пожалуйста! Это на самом деле очень легко, если вы знаете, как. Я пытался показать несколько разных вариантов; Использование UIImageViews или UIImages, Animations (которые также можно использовать для маски).
Чтобы подвести итог всего этого, вам, в основном, нужно установить свойство mask для CALayer вашего представления. Каждый подкласс UIView имеет прикрепленный CALayer, так что вы не ограничены в том, откуда вы берете свою маску или маску.
Надеюсь, это помогло. Приветствия, Дилан.