繁体   English   中英

UIAlertController缓慢显示和关闭-Swift

[英]UIAlertController Slow to Appear and Dismiss - Swift

我正在开发使用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上看到了这个问题,没有真正令人满意的解决方案。 当您点击“取消”按钮时,警报将迅速消失,但是键盘也需要很长时间才能消失。 这应该是瞬时的,因为悬挂式键盘给用户留下了不好的印象。

缓慢关闭键盘

从您提供的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)
}))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM