【发布时间】:2014-07-26 06:21:07
【问题描述】:
我有多个UITextFields,当键盘出现时我需要向上移动视图。但我只需要 3 个底部字段,并且不想移动顶部其他字段的视图。我使用这个代码,但是当用户点击每个字段时它的移动视图,而不是当用户点击 2 个底部字段时我才需要移动视图
- (void)viewWillAppear:(BOOL)animated {
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:) name:UIKeyboardWillShowNotification object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillHide:) name:UIKeyboardWillHideNotification object:nil];
}
- (void)viewWillDisappear:(BOOL)animated {
[[NSNotificationCenter defaultCenter] removeObserver:self name:UIKeyboardWillShowNotification object:nil];
[[NSNotificationCenter defaultCenter] removeObserver:self name:UIKeyboardWillHideNotification object:nil];
}
#pragma mark - keyboard movements
- (void)keyboardWillShow:(NSNotification *)notification
{
[UIView animateWithDuration:0.3 animations:^{
CGRect f = self.view.frame;
f.origin.y = -115.0f; //set the -35.0f to your required value
self.view.frame = f;
}];
}
-(void)keyboardWillHide:(NSNotification *)notification
{
[UIView animateWithDuration:0.3 animations:^{
CGRect f = self.view.frame;
f.origin.y = 0.0f;
self.view.frame = f;
}];
}
【问题讨论】:
-
这是旧方法,但对我来说效果很好,试试这个stackoverflow.com/questions/24181034/…
-
使用
EKKeyboardAvoidingLibrary 在github 上可用github.com/kirpichenko/EKKeyboardAvoiding。 -
@anbu-karthik 谢谢!很好的解决方案,它对我有用!
标签: ios uitextfield