- objective-c - iOS 5 : Can you override UIAppearance customisations in specific classes?
- iphone - 如何将 CGFontRef 转换为 UIFont?
- ios - 以编程方式关闭标记的信息窗口 google maps iOS
- ios - Xcode 5 - 尝试验证存档时出现 "No application records were found"
有一个遗留的 UISplitViewController
iPad 应用程序,它使用 presentViewController:animated:completion: 将 modalPresentationStyle
设置为 从“右侧”VC Pane 显示模态视图>UIModalPresentationFormSheet
。在模态视图的 VC 的 viewDidAppear
中,我们在 UITextField
上调用 becomeFirstResponder。在 iOS6 中,这会导致居中模态视图从底部向上滑动,然后聚焦 KB。但是从iOS7开始,出现的情况是view从底部向上滑动后,向右滑动了(估计)200点左右。奇怪的是,如果你关闭键盘,一旦你这样做, View 就会像在 iOS6 上一样滑回其居中位置。从那时起,当模态视图向上时,KB 焦点使其保持居中并且只向上滑动一点,这是非全屏模态视图的正常 iOS 行为。这就像一旦你解雇了 KB,一旦它从那时起就“纠正”了自己。我已经试验并发现:
presentViewController
调用将 animated
设置为 NO,它会像 iOS6 一样工作。becomeFirstResponder
,它会像 iOS6 一样工作。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/
我来自 Asp.Net 世界,试图理解 Angular State 的含义。 什么是 Angular 状态?它类似于Asp.Net中的ascx组件吗?是子页面吗?它类似于工作流程状态吗? 我听到很多人
我一直在寻找 3 态拨动开关,但运气不佳。 基本上我需要一个具有以下状态的开关: |开 |不适用 |关 | slider 默认从中间开始,一旦用户向左或向右滑动,就无法回到N/A(未回答)状态。 有人
我是一名优秀的程序员,十分优秀!