2010-11-20 5 views
1
- (void)fadeOutStuff 
{ 
    CABasicAnimation *anim = [CABasicAnimation animationWithKeyPath:@"opacity"]; 
    anim.delegate = self; 
    anim.duration = 0.25f; 
    anim.removedOnCompletion = NO; 
    anim.fillMode = kCAFillModeForwards; 
    anim.fromValue = [NSNumber numberWithFloat:1.0f]; 
    anim.fromValue = [NSNumber numberWithFloat:0.0f]; 
    [self.searchList.layer addAnimation:anim forKey:@"animationOpacity"]; 
} 

私は単純にし、outオブジェクトをアニメーション化するには、このコードを持って、アニメーションが完了した後、層が触れるではありません。アニメーションプロセスがレイヤーをレベル/インデックスに設定していますか?アニメーションレイヤの背後にある要素には触れられますが、アニメーションレイヤ自体には触れられません。私は設定が欠けていますか?このコードに基づいてアニメーションを間違った方法で行っていますか?CABasicAnimation

答えて

0

正しく覚えていれば、隠されたオブジェクトは触れません。私はそれが不透明度が0に設定されている場合に適用されるかどうかはわかりませんが、0にする代わりに0.01fにするとどうなるか見てみてください。

ところで、私は分かりませんタイプミスであっても、anim.fromValueを2回設定した場合は、anim.toValueを設定しないでください。

+0

こんにちはDavid、タイムリーな応答をありがとう。私はタイプミスを修正し、初期化時に0.01fのアルファにビューを設定しようとしました。それは隠しオブジェクトと同じですか?ビューはまだ触れていません。 – cj5

+0

位置の遷移についても同じ問題があったことを思い出してください。私はまだアニメーションで作業するために触れることができるビューを持っています。 – cj5

+0

OK、サブビューをアニメーション化せずに不透明度を1.0fに設定しましたが、それを見ることはできますが、まだイベントに触れることはありません。私は間違った方法でサブビューを追加するつもりですか?サブビューを実装するためのベストプラクティスは何ですか? – cj5

0

私はこれを理解しています。プロパティfillModeは主にアニメーションオブジェクトのタッチイベントを無効にする責任があります。アニメーション化しているものがタッチイベントを処理する必要がある場合は、使用しないでください。基本的に、私が使用した回避策は、fillModeプロパティを削除し、レイヤーにアニメーションを追加した後、アニメーションの最終ステージを手動で設定しました。

[self.searchList.layer addAnimation:anim forKey:@"animationOpacity"]; 
[self.searchList.layer setValue:[NSNumber numberWithFloat:endingOpacityValue forKey:@"opacity"]]; 
+0

私は同じ問題に直面しています.....そして私はあなたのやり方を試しました...まだタッチを検出できませんでした.....あなたのコードを教えてください。 – Minakshi

関連する問題