我正在开发一个使用Swift的iOS应用程序,并且UIAlertController的两个问题很慢!
1 - 显得缓慢而紧张
我已经设置了一个UITableViewController,当我点击一个单元格时,它会触发以下代码:
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)
当我导航到视图,并首次点按该单元格时,我会收到警报的抖动和缓慢加载,如下面的GIF中所示。有趣的是,随后的水龙头通常可以平稳而快速地加载。
编辑:GIF的帧速率有点太慢,所以我附上了一些从它放慢的视频中拍摄的剧照:
a)首先点击“成绩考试”,警报开始出现在屏幕中央,但随后向上移动(摇晃)到正确位置。
b)随后的点击,警报从头开始显示在正确的上方位置。
2 - 当警报解除时键盘缓慢关闭
我已经在StackOverflow周围看到了这个问题,没有真正令人满意的解决方案。当您点击取消按钮时,警报将快速解除,但键盘也需要很长时间才能解除。这应该是即时的,因为挂式键盘给用户留下了不好的印象。
答案 0 :(得分: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)
}))