摘译自: http://stackoverflow.com/questions/484855/how-programatically-move-a-uiscrollview-to-focus-in-a-control-above-keyboard
使用一个实例变量记录视图在为键盘调整之前的位置,以用于当UITextField返回时恢复到之前的状态。
//header
@interface TheViewController : UIViewController <UITextFieldDelegate> {
CGPoint svos;
}
//implementation
- (void)textFieldDidBeginEditing:(UITextField *)textField {
svos = scrollView.contentOffset;
CGPoint pt;
CGRect rc = [textField bounds];
rc = [textField convertRect:rc toView:scrollView];
pt = rc.origin;
pt.x = 0;
pt.y -= 60;
[scrollView setContentOffset:pt animated:YES];
}
- (BOOL)textFieldShouldReturn:(UITextField *)textField {
[scrollView setContentOffset:svos animated:YES];
[textField resignFirstResponder];
return YES;
}
本文介绍了一个UITextField在获得焦点时,UIScrollView自动滚动至 UITextField 的实现方法。通过记录 UIScrollView 的原始位置,当 UITextField 开始编辑时调整 UIScrollView 的偏移量,使 UITextField 处于可见区域,并在 UITextField 编辑结束时恢复原始位置。
505

被折叠的 条评论
为什么被折叠?



