Мой TableView замечательно прокручивается, пока не появляется клавиатура ... Затем он работает, когда клавиатура видна. Однако когда я скрываю клавиатуру, TableView вообще не будет прокручиваться.
Кто-нибудь может подумать о возможных вещах, которые могут быть неправильными? Я приложил часть кода, это помогает, но я действительно очень ценю любые рекомендации прямо сейчас. Спасибо!
Вот мой соответствующий код (с кучей NSLogs - ни одно из зарегистрированных значений не изменяется):
Клавиатура скрытия изменяет вкладку, чтобы все работало (скрывает пользовательскую клавиатуру, которую я мог бы показать). Вот почему я всегда переключаю контентInset обратно ...
- (void)textFieldDidBeginEditing:(UITextField *)textField{
if(self.pickerView.frame.origin.y < 480){
[self hideKeyboard];
}
NSLog(@"A1: (%f,%f,%f,%f)",self.tableView.contentInset.top,self.tableView.contentInset.bottom,self.tableView.contentInset.left,self.tableView.contentInset.right);
NSLog(@"B1: (%f,%f,%f,%f)",self.tableView.frame.origin.x,self.tableView.frame.origin.y,self.tableView.frame.size.width,self.tableView.frame.size.height);
NSLog(@"C1: (%f,%f)",self.tableView.contentSize.height,self.tableView.contentSize.width);
NSLog(@"D1: (%f,%f,%f,%f)",self.view.frame.origin.x,self.view.frame.origin.y,self.view.frame.size.width,self.view.frame.size.height);
NSLog(@"E1: (%f,%f)",self.tableView.contentOffset.x,self.tableView.contentOffset.y);
self.tableView.contentInset = UIEdgeInsetsZero;
}
- (void)textFieldDidEndEditing:(UITextField *)textField{
self.tableView.contentInset = UIEdgeInsetsZero;
NSLog(@"A1: (%f,%f,%f,%f)",self.tableView.contentInset.top,self.tableView.contentInset.bottom,self.tableView.contentInset.left,self.tableView.contentInset.right);
NSLog(@"B2: (%f,%f,%f,%f)",self.tableView.frame.origin.x,self.tableView.frame.origin.y,self.tableView.frame.size.width,self.tableView.frame.size.height);
NSLog(@"C2: (%f,%f)",self.tableView.contentSize.height,self.tableView.contentSize.width);
NSLog(@"D2: (%f,%f,%f,%f)",self.view.frame.origin.x,self.view.frame.origin.y,self.view.frame.size.width,self.view.frame.size.height);
NSLog(@"E2: (%f,%f)",self.tableView.contentOffset.x,self.tableView.contentOffset.y);
self.exercise.exerciseName = textField.text;
[appDelegate doOperation:1 onExercise:self.exercise];
}
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)text {
//Make the DONE button work...
if([text isEqualToString:@"\n"]) {
self.tableView.contentInset = UIEdgeInsetsZero;
[textField resignFirstResponder];
NSLog(@"A3: (%f,%f,%f,%f)",self.tableView.contentInset.top,self.tableView.contentInset.bottom,self.tableView.contentInset.left,self.tableView.contentInset.right);
NSLog(@"B3: (%f,%f,%f,%f)",self.tableView.frame.origin.x,self.tableView.frame.origin.y,self.tableView.frame.size.width,self.tableView.frame.size.height);
NSLog(@"C3: (%f,%f)",self.tableView.contentSize.height,self.tableView.contentSize.width);
NSLog(@"D3: (%f,%f,%f,%f)",self.view.frame.origin.x,self.view.frame.origin.y,self.view.frame.size.width,self.view.frame.size.height);
NSLog(@"E3: (%f,%f)",self.tableView.contentOffset.x,self.tableView.contentOffset.y);
return NO;
}
return YES;
}