gpt4 book ai didi

iOS 8 键盘出现时向上移动 UIView |问题

转载 作者:塔克拉玛干 更新时间:2023-11-02 10:03:38 25 4
gpt4 key购买 nike

我有一个 UIView 和一个 UITextField 放置在屏幕底部,当键盘出现时它会向上移动。

在 iOS 8 之前,我一直在遵循以下方法,并且似乎运行良好。

// When Keyboard appears
- (void)keyboardWillShow:(NSNotification *)notification {

[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:[notification.userInfo[UIKeyboardAnimationDurationUserInfoKey] doubleValue]];
[UIView setAnimationCurve:[notification.userInfo[UIKeyboardAnimationCurveUserInfoKey]integerValue]];
[UIView setAnimationBeginsFromCurrentState:YES];

// Frame Update
CGRect frame = self.bottomView.frame;
frame.origin.y = self.view.frame.size.height - 266.0f;
self.bottomView.frame = frame;

[UIView commitAnimations];
}

// When keyboard disappears
- (void) keyboardHides : (NSNotification *) notification {

[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:[notification.userInfo[UIKeyboardAnimationDurationUserInfoKey] doubleValue]];
[UIView setAnimationCurve:[notification.userInfo[UIKeyboardAnimationCurveUserInfoKey] integerValue]];
[UIView setAnimationBeginsFromCurrentState:YES];

// Frame update
CGRect frame = self.bottomView.frame;
frame.origin.y = self.view.frame.size.height - self.bottomView.frame.size.height;
self.bottomView.frame = frame;

[UIView commitAnimations];
}

但上面的代码在 iOS 8 中似乎不起作用,因为键盘挡住了它后面的 UIView。

经过一番研究,我发现了一个 almost-similar回答。但是这里整个UIView都被往上推了,而我想实现的只是移动bottom UIView

最佳答案

https://github.com/michaeltyson/TPKeyboardAvoiding 获取 TPKeyboardAvoidingScrollView

按如下方式使用它。

将 TPKeyboardAvoidingScrollView.m 和 TPKeyboardAvoidingScrollView.h 源文件放入项目中,将 UIScrollView 弹出到 View Controller 的 xib 中,将 ScrollView 的类设置为 TPKeyboardAvoidingScrollView,并将所有控件放入该 ScrollView 中。您也可以在不使用 xib 的情况下以编程方式创建它 - 只需使用 TPKeyboardAvoidingScrollView 作为您的顶级 View 。

要禁用自动“下一步”按钮功能,请将 UITextField 的返回键类型更改为 UIReturnKeyDefault 以外的任何类型。

关于iOS 8 键盘出现时向上移动 UIView |问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26255151/

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