我搜索了高低,終於找到了一個幾乎沒有任何限制的解決方案。所以,你在這裏:
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,動畫(也可用於掩碼)。
綜上所述,你基本上必須在視圖的CALayer上設置mask屬性。每個UIView子類都附有一個CALayer,所以你根本不會受限於你從哪裏獲得你的面具或maskee。
希望這有助於。乾杯,迪倫。
謝謝馬特,正是我所尋找的,也提高了你的答案。 – 2009-12-03 22:12:20