gpt4 book ai didi

iOS7 FormSheet 模态视图在 KB 焦点之后移动到动画时

转载 作者:技术小花猫 更新时间:2023-10-29 11:16:54 25 4
gpt4 key购买 nike

有一个遗留的 UISplitViewController iPad 应用程序,它使用 presentViewController:animated:completion: 将 modalPresentationStyle 设置为 从“右侧”VC Pane 显示模态视图>UIModalPresentationFormSheet。在模态视图的 VC 的 viewDidAppear 中,我们在 UITextField 上调用 becomeFirstResponder。在 iOS6 中,这会导致居中模态视图从底部向上滑动,然后聚焦 KB。但是从iOS7开始,出现的情况是view从底部向上滑动后,向右滑动了(估计)200点左右。奇怪的是,如果你关闭键盘,一旦你这样做, View 就会像在 iOS6 上一样滑回其居中位置。从那时起,当模态视图向上时,KB 焦点使其保持居中并且只向上滑动一点,这是非全屏模态视图的正常 iOS 行为。这就像一旦你解雇了 KB,一旦它从那时起就“纠正”了自己。我已经试验并发现:

  1. 如果为 presentViewController 调用将 animated 设置为 NO,它会像 iOS6 一样工作。
  2. 如果您根本不调用 becomeFirstResponder,它会像 iOS6 一样工作。
  3. 如果调用 performSelector:xxxxafterDelay:0,传递 becomeFirstResponder 作为选择器而不是直接调用 becomeFirstResponder,它也像 iOS6 一样工作。

上面的选项 3 目前是我前进的解决方法,但我的问题是:这是一个 iOS7 错误,还是我们做错了在 6 中显然没问题但在 iOS7 中不正确的事情?

仅出现在 iOS7 之后。仅在模拟器上重新创建一次,但 100% 的时间都在测试设备 (iPad mini) 上。从搜索中我已经做了我目前最好的猜测(假设我们的代码不是 iOS7 之后的罪魁祸首)在键盘动画和 iOS UI 层从底部向上滑动的 View 之间是否存在竞争条件类型的错误这会导致 View 向右移动而不是向上移动,就像在模态呈现非全屏 View 并弹出 KB 时通常所做的那样。阅读后我得到了那个理论this similar SO question .

最佳答案

有这个问题。这绝对是 iOS7.X 中的一个错误。 (您应该向 Apple 打开错误报告!)。发生的事情是 Apple 在其布局计算中存在错误并移动了模态呈现的 View 。

我们用过

dispatch_async(dispatch_get_main_queue(), ^{ [view becomeFirstResponder]; }); 

克服与您的#3 类似的问题。这会将键盘出现延迟到 View 布局之后,从而解决了这个问题。

关于iOS7 FormSheet 模态视图在 KB 焦点之后移动到动画时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23409197/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com