gpt4 book ai didi

ios - 出现键盘时移动 UIView

转载 作者:可可西里 更新时间:2023-11-01 17:08:48 24 4
gpt4 key购买 nike

我有两个 UITextView,一个在 UIView 的顶部,另一个在 UIView 的底部。

我使用这段代码,在键盘出现时移动 UIView。

  - (void) viewDidLoad
{

[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(keyboardWillShow)
name:UIKeyboardWillShowNotification
object:nil];

[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(keyboardWillHide)
name:UIKeyboardWillHideNotification
object:nil];

}


-(void)keyboardWillShow {
// Animate the current view out of the way
[UIView animateWithDuration:0.3f animations:^ {
self.frame = CGRectMake(0, -160, 320, 480);
}];
}

-(void)keyboardWillHide {
// Animate the current view back to its original position
[UIView animateWithDuration:0.3f animations:^ {
self.frame = CGRectMake(0, 0, 320, 480);
}];
}

当我从底部使用 UITextView 时效果很好。但我的问题是,当我想使用 UIView 顶部的 UITextView 时,键盘出现,UIView 向上移动,而且我的顶部 UITextView 也向上移动。请帮助我,如果用户想从顶部在 UITextView 上键入文本,我不想移动 UIView。

最佳答案

我在我的项目中使用的一个非常简单的方法是 TPKeyboardAvoiding 库。

https://github.com/michaeltyson/TPKeyboardAvoiding

下载源代码,将 4 个文件放入您的项目中。在 InterfaceBuilder 中,确保您的 TextView 位于 UIScrollView 或 UITableView 中,然后将该 ScrollView 或表格 View 的类更改为 TPAvoiding 子类。

如果您不想这样做,您的另一个选择是检查正在使用哪个 TextView 并且仅当您想要的键盘是所选键盘时才设置动画,即:

-(void)keyboardWillShow {
// Animate the current view out of the way
if ([self.textFieldThatNeedsAnimation isFirstResponder]) {
[UIView animateWithDuration:0.3f animations:^ {
self.frame = CGRectMake(0, -160, 320, 480);
}];
self.animated = YES;
}
}

-(void)keyboardWillHide {
// Animate the current view back to its original position
if (self.animated) {
[UIView animateWithDuration:0.3f animations:^ {
self.frame = CGRectMake(0, 0, 320, 480);
}];
self.animated = NO;
}
}

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

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