2011-10-03 25 views
0

それぞれにタッチイベントが関連付けられたUIViewのグリッドがあります。 UIViewに触れると、私はすべての兄弟をフェードアウトしたいと思います。兄弟ビューのアニメーション

誰にでもこれに与えるべき方向はありますか?フェーディング兄弟はタッチされたUIViewによって処理できますか、またはView Controllerが兄弟をフェードアウトする必要がありますか?

EDIT:それを考え出し:

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { 

    for (UIView *subview in [self.superview subviews]) { 
     if (subview != self) { 
      subview.layer.opacity = 0.5; 
     }  
    } 

    [super bringSubviewToFront:self]; 

} 

答えて

1

をあなたはまた、UIViewのレベルでそれを行うことができます。あなたの変更をUIViewアニメーションブロック内のビューのアルファにラップするだけです。このように:

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event 
{ 
    [UIView beginAnimations:nil context:NULL]; 
    [UIView setAnimationDuration:0.5]; 
    for (UIView *subview in [self.superview subviews]) { 
    if (subview != self) { 
     [subview setAlpha:0.5]; 
    }  
    } 
    [UIView commitAnimations];  
    [super bringSubviewToFront:self]; 

} 

これは、すべてのサブビューを半透明に半透明にフェードさせるはずです。あなたはそれをソートしましたが、私はちょうど私が同じ結果を達成するUIViewの方法を投げると思った。

よろしくお願いいたします。