菜鸟教程小白 发表于 2022-12-11 16:43:22

ios - UIAlertController 缓慢出现和关闭 - Swift


                                            <p><p>我正在使用 Swift 开发 iOS 应用程序,但遇到两个 UIAlertController 速度很慢的问题!</p>

<p><strong>1 - 缓慢而紧张的出现</strong></p>

<p>我已经设置了一个 UITableViewController,当我点击一个单元格时,它会触发以下代码:</p>

<pre><code>let alertController = UIAlertController(title: &#34;Enter Exam Grade&#34;, message: nil, preferredStyle:UIAlertControllerStyle.Alert)

      alertController.addTextFieldWithConfigurationHandler({(textField: UITextField) in
            textField.placeholder = &#34;Earned&#34;
            textField.keyboardType = .NumberPad
      })

      alertController.addTextFieldWithConfigurationHandler({(textField: UITextField) in
            textField.placeholder = &#34;Out of&#34;
            textField.keyboardType = .NumberPad
      })

      alertController.addAction(UIAlertAction(title: &#34;Save&#34;, 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 != &#34;&#34; &amp;&amp; outOfTextField.text != &#34;&#34;) {

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

                  }

                }

            }

      }))

      alertController.addAction(UIAlertAction(title: &#34;Cancel&#34;, style: .Cancel, handler: nil))

      self.presentViewController(alertController, animated: true, completion: nil)
</code></pre>

<p>当我导航到 View 并第一次点击单元格时,我会收到一个紧张而缓慢的警报加载,如下面的 GIF 所示。有趣的是,随后的点击加载通常会顺利且快速。</p>

<p> <a href="/image/hIB9C.gif" rel="noreferrer noopener nofollow"><img src="/image/hIB9C.gif" alt="Jittery to appear"/></a> </p>

<p>编辑:GIF 的帧速率有点太慢,所以我附上了一些从慢速视频中截取的剧照:</p>

<p>a) 第一次点击“Grade Exam”,警报开始出现在屏幕中央,但随后向上(突然)移动到正确的位置)。</p>

<p> <a href="/image/46dro.png" rel="noreferrer noopener nofollow"><img src="/image/46dro.png" alt="enter image description here"/></a>
<a href="/image/m0Fuk.png" rel="noreferrer noopener nofollow"><img src="/image/m0Fuk.png" alt="enter image description here"/></a> </p>

<p>b) 后续点击,警报会从头开始出现在正确的上方位置。</p>

<p> <a href="/image/8Zh8C.png" rel="noreferrer noopener nofollow"><img src="/image/8Zh8C.png" alt="enter image description here"/></a>
<a href="/image/T7dB6.png" rel="noreferrer noopener nofollow"><img src="/image/T7dB6.png" alt="enter image description here"/></a> </p>

<p><strong>2 - 警报关闭时键盘关闭速度很慢</strong></p>

<p>我在 StackOverflow 上都看到过这个问题,但没有真正令人满意的解决方案。当您点击取消按钮时,警报将快速关闭,但键盘也需要很长时间才能关闭。这应该是即时的,因为悬挂的键盘会给用户留下不好的印象。</p>

<p> <a href="/image/2QfhK.gif" rel="noreferrer noopener nofollow"><img src="/image/2QfhK.gif" alt="Slow to dismiss keyboard"/></a> </p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>从您提供的 gif 文件来看,您的键盘启动似乎是“正常的”。但是假设它很慢,如果它加载得更快,也许你可以试试这个。 </p>

<p>顺便提一下,我没有尝试过这段代码并从这里输入。</p>

<p>用于键盘显示缓慢。</p>

<pre><code>textField.placeholder = &#34;Out of&#34;
textField.keyboardType = .NumberPad
textField.becomeFirstResponder()
</code></pre>

<p>用于缓慢隐藏键盘。</p>

<pre><code>alertController.addAction(UIAlertAction(title: &#34;Cancel&#34;, style: .Cancel, handler: {
            (alert: UIAlertAction) in
       self.view.endEditing(true)
}))
</code></pre></p>
                                   
                                                <p style="font-size: 20px;">关于ios - UIAlertController 缓慢出现和关闭 - Swift,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/37801790/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/37801790/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - UIAlertController 缓慢出现和关闭 - Swift