UIScrollView автоматически прокручивается после того, как я установил contentOffset - PullRequest
0 голосов
/ 25 августа 2011

Я пытаюсь перемещаться по UITextFields, когда клавиатура включена.У меня есть настройка XIB с UIScrollView с текстовыми полями внутри.Я изменяю contentOffset.y, когда UITextField установлен для первого респондента.Первые два текстовых поля реагируют нормально, но после этого вид прокрутки будет проходить мимо выделенного текстового поля и будет становиться все хуже и хуже по мере удаления из списка, который я получаю.Я настроил операторы NSLog и точки останова, которые показали мне, что когда я впервые выбираю текстовое поле, используется правильное значение y, но затем метод scrollViewDidScroll из scrollview вызывается сразу после нескольких раз, проходя мимо текстового поля.

-(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;
}

Я использую iOS 4.3 на xcode 4.1 lion

1 Ответ

0 голосов
/ 25 августа 2011

Может быть, ваш accessoryBar все портит? Свойство inputAccessoryView обычно доступно только для чтения, поэтому я предполагаю, что у вас есть подкласс UITextField. Попробуйте свой код без accessoryBar.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...