目标C:Uitableview滚动仅在键盘打开时有效

时间:2012-10-31 20:23:38

标签: objective-c scroll uitextfield uitableview

我的TableView中有两个Textfields。选择一个进行编辑时,文本字段将移动到屏幕的中心。这就是我的工作:

-(void)textFieldDidBeginEditing:(UITextField *)textField
{
    if(textField == self.nameTextField) {
        [self.tableView scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:0  inSection:0] atScrollPosition:UITableViewScrollPositionMiddle animated:YES];
    }
    else if(textField == self.passwordTextField) {
        [self.tableView scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:1 inSection:0] atScrollPosition:UITableViewScrollPositionMiddle animated:YES];
    }
}

一切正常,但只有在键盘打开时才能正常工作。如果我第一次点击文本字段或键盘已关闭,则不会进行滚动。

有谁可以告诉我为什么或你有其他解决方案?

非常感谢!

1 个答案:

答案 0 :(得分:0)

尝试使用textFieldShouldReturn方法,键盘关闭时会调用它。以下逻辑适用于我,将此方法添加到您的代码中:

- (BOOL)textFieldShouldReturn:(UITextField *)textField {

[textField resignFirstResponder];
[self.tableView setScrollEnabled:YES];
[self.tableView setContentOffset:CGPointZero animated:NO];
return YES;

}

希望这会对你有所帮助。