设置contentOffset后,UIScrollView会自动滚动

时间:2011-08-25 17:40:23

标签: iphone cocoa-touch uiscrollview ios4

我正在尝试在键盘启动时浏览UITextFields。我有一个带有UIScrollView的xib设置,里面有文本字段。当UITextField设置为第一个响应者时,我有contentOffset.y更改。前两个文本字段的反应正常,但在此之后,滚动视图将拍摄选定的文本字段,并且在我获得的列表中越往前越差。我已经设置了NSLog语句和断点,它们向我展示了当我第一次选择文本字段时,使用了正确的y值,但是滚动视图的scrollViewDidScroll方法在多次运行之后直接调用,运行在文本字段之后。

-(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 lion上运行iOS 4.3

1 个答案:

答案 0 :(得分:0)

也许你的accessoryBar搞砸了? inputAccessoryView属性通常是只读的,因此我假设您已经包含UITextField子类。在没有accessoryBar的情况下试用您的代码。