我想通过UITextFields在键盘启动时导航。我有一个带有内置文本框的UIScrollView的xib设置。当UITextField被设置为第一响应者时,我将contentOffset.y更改。前两个文本框会正常响应,但在此之后,滚动视图将射过选定的文本框,并且在获得的列表的下方越来越差。我已经设置了NSLog语句和断点,这些断点告诉我,当我第一次选择文本字段时,使用了正确的y值,但随后几次滚动视图的scrollViewDidScroll方法直接调用,运行经过文本字段。UIScrollView自动滚动后,我设置contentOffset
-(void)textFieldDidBeginEditing:(UITextField *)textField{
textField.inputAccessoryView = accessoryBar;
int offset = 30;
[scrollView setContentOffset:CGPointMake(0, textField.frame.origin.y -offset) ];
}
-(void)textFieldDidEndEditing:(UITextField *)textField{
[scrollView setContentOffset:CGPointMake(0, 0)];
}
-(BOOL) textFieldShouldReturn:(UITextField*) textField {
[textField resignFirstResponder];
return YES;
}
我上的Xcode 4.1狮子运行iOS 4.3
你在做什么scrollViewDidScroll会改变这个?或者你是否在其他地方设置了内容偏移? – MishieMoo
我没有使用scrollViewDidScroll来打印使用NSLog的偏移调用。“NSLog(@”scrollview:offsetY:%f height:%f“,scrollView.contentOffset.y,scrollView.contentSize.height);” – user912649
你的抵消总是30?像Mundi说的,绝对会登录textField框架。 – MishieMoo