我有一个注册表单,其中我使用了大约7个文本字段。但是当我开始输入值时键盘隐藏了较低的3个字段。我想向上移动我的视图而不是使用滚动视图。请告诉我任何解决方案。 感谢。
答案 0 :(得分:0)
注册键盘显示和隐藏通知。
- (void)registerForKeyboardNotifications {
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWasShown:)
name:UIKeyboardDidShowNotification object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillBeHidden:)
name:UIKeyboardWillHideNotification object:nil];
}
-
现在在- (void)keyboardWasShown:(NSNotification*)iNotification
方法中,使用
NSDictionary *anUserInfo = [iNotification userInfo];
CGSize aKeyboardSize = [[anUserInfo objectForKey:UIKeyboardFrameBeginUserInfoKey] CGRectValue].size;
基于iPhone 5或iPhone 4的设备,也可以获得屏幕尺寸。
现在,您将能够找出视图必须向上滑动的隐藏字段和距离,以使隐藏字段可见。
使用TextField的- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField
委托。每次都要编辑一个隐藏的文本字段,计算它应该向上移动的距离。
获得距离后,为视图设置动画以向上移动。
如何向上移动:
CGFloat aDistanceToMakeFieldVisible = 50.0; //you have to calculate this
[UIView animateWithDuration:0.5 animations:^{
CGRect aFrame = self.view.frame;
aFrame.origin.y -= aDistanceToMakeFieldVisible;
self.view.frame = aFrame;
} completion:^(BOOL finished) {
}];
别忘了动画下来......