0

UISwitchの「オン」カラーをアニメーション化し、アニメーションのオン/オフを妥協することなくインタラクティブにしたいと考えています。ここに私が試したものです:持続方法で'onTintColor'のアニメーション中にUISwitchがオン/オフしているアニメーションを修正しました

  1. のUIViewのアニメーションが原因でうまくいかない...それは 、「onTintColor」 のUIViewのアニメーション可能プロパティとしてリストされていないではないはずです。ファイン。

    mySwitch.onTintColor = UIColor.green 
    
    UIView.animate(withDuration: 10) { 
        mySwitch.onTintColor = UIColor.red 
    } 
    
  2. 次。ビューメソッドでのUIViewのトランジションは、適切なビジュアルビヘイビアを提供しますが、スイッチとやり取りするときにデフォルトのオン/オフアニメーションが損なわれます(GIFを参照)。

    ​​
  3. CATransitionはnoと同じ動作を示します。 2(GIF参照)。

    var transition = CATransition() 
    transition.type = kCATransitionFade 
    transition.duration = 10 
    mySwitch.layer.add(transition, forKey: kCATransition) 
    mySwitch.onTintColor = UIColor.red 
    

via GIPHY

誰もが、私は/オフアニメーションのデフォルトに影響を与えることなく、 'onTintColor' をアニメーション化することができますどのように任意のアイデアがありますか?

これを正しく実行してカスタムスイッチを作成する唯一の方法はありますか?

答えて

3

デフォルトでは、アニメーション中にユーザー対話が無効になります。 UIViewのアニメーションの長い形、

animate(withDuration:delay:options:animations:completion:)を使用してみてください、そしてその提案のための.allowUserInteraction

+0

感謝のオプションを渡します。そのオプションをビューに移行するには、それが素晴らしいということを行いますが、スイッチのデフォルトのオン/オフアニメーションにも影響します。私の編集とリンクされたGIFを見てください:) –

関連する問題