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"];
}

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

4

2 に答える 2

1

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

[self.searchList.layer addAnimation:anim forKey:@"animationOpacity"];
[self.searchList.layer setValue:[NSNumber numberWithFloat:endingOpacityValue forKey:@"opacity"]];
于 2010-11-23T18:33:14.653 に答える
0

私の記憶が正しければ、隠しオブジェクトはタッチを受けません。不透明度をゼロに設定しただけの場合に適用されるかどうかはわかりませんが、0.01f にするのではなく、0.01f にするだけでどうなるかを確認してみてください。

ちなみに、タイプミスかどうかわかりませんが、anim.fromValue2回設定して、設定していませんanim.toValue

于 2010-11-20T02:32:49.873 に答える