22

おそらくそれは適切な構文の問題にすぎません。

animateWithDuration:delay:options:animations:completion:UIViewメソッドを使用します。

ここoptions:で問題となるのは、オプションを1つだけ割り当てると(たとえば、UIViewAnimationOptionCurveEaseInOut)、すべてが正常に機能することです。

同じアニメーションに複数のオプションを割り当てたい場合はどうなりますか?どうやってやるの?

私は次のコードを試しましたが、そのoptions:部分は完全に無視されていることがわかりました:

>   [UIView animateWithDuration:DURATION
>                         delay:DELAY
>                       options:(UIViewAnimationOptionAllowUserInteraction,
>                                UIViewAnimationOptionCurveEaseInOut)
>                    animations: ^{/*animations here*/}
>                    completion: ^(BOOL finished){/*actions on complete*/}];

それはただの試みであり、うまくいきませんでした。ここではどの構文を使用する必要がありますか?

よろしくお願いします。

4

2 に答える 2

56

Objective-C

options:(UIViewAnimationOptionAllowUserInteraction |
                            UIViewAnimationOptionCurveEaseInOut)

迅速

Swiftでは、UIViewAnimationOptionsはオプションセットタイプであり、次の方法で複数のオプションを渡すことができます。

options:[.AllowUserInteraction, .CurveEaseInOut]
于 2010-08-17T08:04:18.193 に答える
2

コンパイラが提供されたオプションを無視したように見える理由を追加するだけで、エラーをスローしなかったのは、試した構文が C で見過ごされがちなコンマ演算子を使用しているためです。

(UIViewAnimationOptionAllowUserInteraction, UIViewAnimationOptionCurveEaseInOut)

最初のオプションを破棄し、カンマの後の値のみを割り当てるようにコンパイラに指示します。より一般的なケースでは、コンマ演算子の最初の引数が評価されますが、その結果は破棄されます。

于 2011-05-17T19:03:57.613 に答える