可以使整个view向上移动,这样文本框就不会被挡住了。为了使view上移的过程没那么生硬,这个过程可以用动画来执行。
在UITextView中:
-(void)textViewDidBeginEditing:(UITextView *)textView
{
float offset = xx; //view向上移动的距离
NSTimeInterval animationDuration = 0.30f;
[UIView beginAnimations:@"ResizeForKeyBoard"context:nil];
[UIView setAnimationDuration:animationDuration];
float width = self.view.frame.size.width;
float height = self.view.frame.size.height;
CGRect rect = CGRectMake(0.0f, offset , width, height);
self.view.frame = rect;
[UIView commitAnimations];
}
}
-(void)textViewDidEndEditing:(UITextView *)textView
{
float offset = 0f ;
NSTimeInterval animationDuration = 0.30f;
[UIView beginAnimations:@"ResizeForKeyBoard"context:nil];
[UIView setAnimationDuration:animationDuration];
float width = self.view.frame.size.width;
float height = self.view.frame.size.height;
CGRect rect = CGRectMake(0.0f, offset , width, height);
self.view.frame = rect;
[UIView commitAnimations];
}
}
在UITextField中,同理可在- (void)textFieldDidBeginEditing:(UITextField *)textField和- (void)textFieldDidEndEditing:(UITextField *)textField中加入相应的代码即可。注意要声明UITextViewDelegate或UITextFieldDelegate委托