gpt4 book ai didi

ios - iPhone 键盘尺寸

转载 作者:行者123 更新时间:2023-11-28 23:38:34 24 4
gpt4 key购买 nike

有没有办法在显示键盘之前以编程方式获取键盘大小?在 Objective-C 中

我需要以编程方式将view.height约束设置为与keyboard.height相同。它需要在键盘出现之前发生,这样 View 在 ViewController 出现之后就不会出现这种丑陋的约束动画。

enter image description here

最佳答案

我假设您通过在某些 UI 组件上调用 becomeFirstResponder 来显示键盘。

如果键盘在您的 View 呈现后出现,您应该检查该调用是在哪里执行的。在 viewDidLoad 或类似的早期调用它应该会导致键盘在 View 动画时显示。


您的布局还应正确处理键盘更改。键盘大小即使在显示后也可以更改。例如,表情符号/快速输入键盘比默认键盘高。

您应该结合使用 UIKeyboard[Will/Did]ShowNotificationUIKeyboard[Will/Did]HideNotificationUIKeyboardWillChangeFrameNotification 执行约束更改>。在您的情况下,UIKeyboardWillShowNotification 应该可以解决问题。

userInfo 字典包含a lot of information关于键盘。您可以在 UIKeyboardFrameEndUserInfoKey 中找到键盘的最后一帧。如果您对布局中的更改进行动画处理,则可以使用 UIKeyboardAnimationCurveUserInfoKeyUIKeyboardAnimationDurationUserInfoKey 中的值来使用与键盘相同的动画进行动画处理。

- (void)viewDidLoad {
[super viewDidLoad];

// Don't forget to remove the observer when appropriate.
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(keyboardWillShow:)
name:UIKeyboardWillShowNotification
object:nil];
[self.textField becomeFirstResponder];
}

- (void)keyboardWillShow:(NSNotification *)notification {
CGFloat keyboardHeight = [notification.userInfo[UIKeyboardFrameEndUserInfoKey] CGRectValue].size.height;

[self.viewHeightConstraint setConstant:keyboardHeight];

// You can also animate the constraint change.
}

如果从一开始就提供键盘,这样的设置也将有效。

关于ios - iPhone 键盘尺寸,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54154531/

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