В моем приложении у меня есть UITableView, который имеет несколько пользовательских ячеек, и в тех, которые я поместил UITextField.То, что UITextField иногда блокируется моей клавиатурой, является проблемой.Поэтому в моей ситуации я пытаюсь переместить весь вид таблицы, а не просто прокручивать ее до определенной ячейки, что было для меня проблемой.
В любом случае у меня тоже возникают проблемы.
В любом случаеэто мой код для метода показа textField и метода окончания.Проблема в том, что UITableView никогда не перемещает правильное количество.Я просто пытаюсь переместить UITableview достаточно вверх, чтобы ячейка, в которой вызывается UITextField, находилась чуть выше клавиатуры. Так что иногда он слишком сильно прокручивается там, где я не вижу ячейку, или весь просмотр таблицы движется сумасшедшим образом, когда я ее вообще не вижу.
В любом случае, вот мой код,кто-нибудь видит что-то не так?
- (BOOL)textFieldShouldBeginEditing:(UITextField *)thetextField {
CustomCell *cell = (CustomCell*)[[thetextField superview] superview];
CGRect cellRect = [cell convertRect:cell.frame toView:self.view];
float bottomCell = cellRect.origin.y - cellRect.size.height;
if (bottomCell >= keyboardY) {
subtractionAmount = keyboardY - bottomCell;
didMove = YES;
[UIView animateWithDuration:0.4
animations:^{
thetableView.center = CGPointMake(thetableView.center.x, thetableView.center.y + subtractionAmount);
}];
}
return YES;
}
-(BOOL) textFieldShouldReturn:(UITextField *)thetextField {
if (didMove) {
didMove = NO;
[UIView animateWithDuration:0.4
animations:^{
thetableView.center = CGPointMake(thetableView.center.x, thetableView.center.y - subtractionAmount);
}];
}
Спасибо!