如何使我的键盘弹出窗口更加流畅,我的视图控制器以模态方式出现?

Posted

技术标签:

【中文标题】如何使我的键盘弹出窗口更加流畅,我的视图控制器以模态方式出现?【英文标题】:How do I make my keyboard popup more fluent with my view controller appearing modally? 【发布时间】:2013-11-07 00:49:09 【问题描述】:

我希望键盘在视图控制器向上滑动时向上滑动。但是对于我以模态方式呈现的视图控制器之一,当呈现视图控制器时键盘会立即出现,因此键盘出现然后视图控制器从其下方向上滑动,从而产生丑陋的效果。

奇怪的是,当它在viewDidLoad 中时会发生这种瞬时行为,但是将它放在那里对于另一个视图控制器来说效果很好。 (但在瞬间出现的是 UITextField,而正确的是 UITextView。)

代码如下:

- (void)viewDidLoad

    [super viewDidLoad];

    [self.URLTextField becomeFirstResponder];

如何让它与视图控制器一起出现?我不必做丑陋的dispatch_after 吗?

【问题讨论】:

viewWillAppear 尝试一下,但我猜你最容易得到的最好是来自viewDidAppear viewDidAppear 有延迟,viewWillAppear 的结果与 viewDidLoad 发生的结果相同。 我没有看到您在 viewWillAppear 中看到的内容——看起来新的视图控制器和键盘一起向上滑动。我觉得不错。 如果您无法正确处理,解决方法可能是在固定延迟后滚动您自己的演示文稿。 【参考方案1】:

如果使用某些方法 (ViewDidLoad/ViewWillAppear) 加载太快,而使用其他方法加载太慢,您可以尝试在中间做一些事情。

我不建议这样做,因为我确信有办法让它做你喜欢的事情,但我想在 viewDidLoad 中你可以设置视图以响应keyboardWillShow,然后成为第一响应者并在通知中延迟几毫秒

【讨论】:

以上是关于如何使我的键盘弹出窗口更加流畅,我的视图控制器以模态方式出现?的主要内容,如果未能解决你的问题,请参考以下文章

不希望模态视图在键盘显示上向上移动

弹出窗口关闭时如何在主视图控制器中快速运行代码

Android - 如何在软键盘出现时调整弹出窗口

仅当键盘覆盖视图时如何更改 UITableView 内容插图?

如何使我的滚动到顶部按钮动画流畅

如何为表情符号制作有效的弹出视图?