2016-06-14 13 views
2

私はSwiftを使用してiOSアプリケーションを開発していますが、UIAlertControllerに2つの問題があります。私はビューに移動するとUIAlertController表示が遅くなる - Swift

let alertController = UIAlertController(title: "Enter Exam Grade", message: nil, preferredStyle:UIAlertControllerStyle.Alert) 

     alertController.addTextFieldWithConfigurationHandler({(textField: UITextField) in 
      textField.placeholder = "Earned" 
      textField.keyboardType = .NumberPad 
     }) 

     alertController.addTextFieldWithConfigurationHandler({(textField: UITextField) in 
      textField.placeholder = "Out of" 
      textField.keyboardType = .NumberPad 
     }) 

     alertController.addAction(UIAlertAction(title: "Save", style: UIAlertActionStyle.Default, handler: { 
      (alert: UIAlertAction) in 

      if let gradeTextField = alertController.textFields!.first as UITextField? { 

       if let outOfTextField = alertController.textFields!.last as UITextField? { 

        if (gradeTextField.text != "" && outOfTextField.text != "") { 

         print(gradeTextField.text) 
         print(outOfTextField.text) 

        } 

       } 

      } 

     })) 

     alertController.addAction(UIAlertAction(title: "Cancel", style: .Cancel, handler: nil)) 

     self.presentViewController(alertController, animated: true, completion: nil) 

: -

1私がのUITableViewControllerを設定している、と私はセルをタップすると、それは次のコードを発射

を出現が遅いとジッタ最初にセルをタップすると、下のGIFでわかるように、気分が悪く、アラートが遅くなります。興味深いことに、その後のタップは一般的にスムーズかつ迅速にロードされます。

Jittery to appear

EDIT:GIFは少し遅すぎるフレームレートを持っているので、私はそれの鈍化映像から取られたいくつかの静止画を添付しました:

「グレード試験」のa)まず、タップ、警告が画面の中央に表示され始めますが、その後、正しい位置に上がっていきます。

enter image description here enter image description here

b)はその後のタップを、アラートが最初から正しい上方位置に表示されます。

enter image description here enter image description here

2 - アラートが

を閉じると、却下するのが遅いキーボードはノー本当の満足のいく解決策では、すべてのStackOverflowの周りこの問題を見てきました。 [キャンセル]ボタンをタップすると、アラートはすばやく消えますが、キーボードも消えるのに時間がかかります。これは、ハンギングキーボードがユーザーに悪い印象を残すため、瞬間的でなければなりません。

Slow to dismiss keyboard

+0

あなたは 'cmd' + 'T'を試しましたか?スローアニメーション – Ccr

+0

@Ccrをトグルするので、シミュレータで確認したところ、物理デバイス上でアプリを実行しているときにのみバグが表示されますが、シミュレータは表示されません... – Max

+0

何を実行していますか?パフォーマンス上の問題があるかもしれません。 – user2277872

答えて

0

キーボードの立ち上げは、あなたが提供したgifファイルから「通常」のようです。しかし、もしそれが遅いと仮定すると、多分あなたはそれがより速くロードされるならば、これを試すことができます。

私はこのコードを試しておらず、ここから入力していません。

キーボードの表示が遅い場合。

textField.placeholder = "Out of" 
textField.keyboardType = .NumberPad 
textField.becomeFirstResponder() 

キーボードをゆっくりと隠すため。

alertController.addAction(UIAlertAction(title: "Cancel", style: .Cancel, handler: { 
      (alert: UIAlertAction) in 
     self.view.endEditing(true) 
})) 
+0

私はまだ問題を抱えて同じことをした –

関連する問題