我一直有一些问题,调用-becomeFirstResponder一个UITextField以模态方式呈现的视图控制器的包含.我在模态视图控制器的-viewDidLoad方法中调用此方法,以便立即显示键盘.我期望键盘和模态视图控制器同时从屏幕底部向上动画.但是,我正在观察的是以下内容:
-presentModalViewController:animated:父视图控制器上调用方法的按钮与子视图控制器开始以模态方式动画之间存在约0.2秒的UI延迟.就像键盘的动画和模态视图控制器的动画同时竞争某些较低级别的Core Animation资源一样,但我不明白为什么会发生这种情况.如果我不要求UITextField成为第一个响应者(即,如果我不要求键盘呈现自己),那么似乎进一步证实了这种预感,那么绝对没有UI延迟,并且模态视图控制器动画即刻.
有趣的是,如果我做类似的事情[self.textField performSelector:@selector(becomeFirstResponder) withObject:nil afterDelay:0.0001];,键盘的动画几乎与模态视图控制器的动画同时发生 - 很难说它们在iPhone上运行时不会同时被动画化模拟器.但是,当在实际设备上运行时,很容易注意到键盘在出现模态视图控制器之后才会出现.但重要的是,没有更多的UI延迟.
有没有人经历过类似的事情?