2014-03-02 17 views
0

我製作了兩個圖像:一個使用我的微調圖像,另一個使用蒙版圖像(部分透明漸變)。想象一下:旋轉器圖像順時針旋轉,底部有黑色漸變(看起來像霧霾),旋轉的旋轉器部分地用這個漸變隱藏。這是我的目標。iOS:旋轉圖像,但不是蒙版。如何做到這一點?

我添加了兩個UIImageView到我的場景中,但是我的面具圖像也影響背景顏色,我不想那樣。我想,我的掩模圖像屏蔽只能微調,所以我有這樣的:

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    //add mask to UIImageView 
    CALayer *mask = [CALayer layer]; 
    mask.contents = (id)[[UIImage imageNamed:@"mask.png"] CGImage]; 
    mask.frame = CGRectMake(0, 0, self.spinner.bounds.size.width,self.spinner.bounds.size.height); 
    self.spinner.layer.mask = mask; 
    self.spinner.layer.masksToBounds = YES; 



    //rotate UIImageView (trouble with mask, it must not be rotated) 
    CABasicAnimation* animation = [CABasicAnimation animationWithKeyPath:@"transform.rotation.z"]; 
    animation.fromValue = [NSNumber numberWithFloat:0.0f]; 
    animation.toValue = [NSNumber numberWithFloat: 2*M_PI]; 
    animation.duration = 20.0f; 
    animation.repeatCount = INFINITY; 
    [self.spinner.layer addAnimation:animation forKey:@"Spinner"]; 

} 

結果我得到了我微調器漂亮面具的形象,但我的面具和我的微調旋轉,我要永遠夾我的面具我的微調UIImageView的底部。我怎樣才能做到這一點?或者我的想法是錯誤的,如果是這樣,給我一些指導,我怎樣才能存檔我想要的。隨意問。謝謝。

回答

2

對我來說很棘手,但我做到了。

以下是您需要做的事情:您需要一個UIView(作爲UIImageView的容器)。

改變這部分源代碼,我貼在下面:

CALayer *mask = [CALayer layer]; 
mask.contents = (id)[[UIImage imageNamed:@"mask.png"] CGImage]; 
mask.frame = self.yourContainerView.bounds; 

self.yourContainerView.layer.mask = mask; 
self.yourContainerView.layer.masksToBounds = YES; 

這就是全部。希望這會有助於某人。