2016-12-13 12 views
1

私の呼び出しは、このようなものになります。私は、ボタンを表示するためにそれを使用すると素敵なフェードインと予想通り、それが動作UIView.transitionは、シミュレータでフェードインではなく、デバイス

UIView.transition(with: button, duration: 0.5, 
        options: .transitionCrossDissolve, 
        animations: { button.hidden = false }, 
        completion: null) 

を。 (button.hidden = trueで)非表示にすると、iOSシミュレータでうまく動作しますが、iPhoneやiPadのデバイスでは、フェードがなくなり消えてしまいます。

唯一の大きな違いは、デバイスがiOS 10.2を実行していることですが、シミュレータには10.1しかありません。 Xcodeは私に10.2シミュレータをダウンロードするオプションを与えていません。

他にも欠けているものはありますか?私が使用すべき他のアニメーションオプションはありますか?

私が隠して表示しているボタンは、ナビゲーションバーのUIBarButtonItemの内側にあることに注意する価値があります。

答えて

0

私のボタンがナビゲーションバーにあるので、navigationItem.setRightBarButtonItems(buttons, animated: true)を使用してしまいました。これを受けて、アニメーションはシミュレータとデバイスの両方でフェードアウトしました。

1

私は同じ問題を抱えていましたが、UIView内の標準のUIViewだけでした。私がwith:パラメータとして隠していたビューのスーパービューを渡すことで私の趣味を修正しました。私はこれをやり直すべきだと思います。問題のビューを渡すことでうまくいったという事実は、Appleが10.2で修正したかもしれない便利なバグだったかもしれませんが、それはただの推測です。とにかく

、私が説明するために地雷を修正するために何をしたか使用してOPのコードを再書き込み:

UIView.transition(with: button.superview!, duration: 0.5, 
        options: .transitionCrossDissolve, 
        animations: { button.hidden = false }, 
        completion: null) 
関連する問題