键盘阻止UITableViewCell的UITextField?

时间:2011-12-31 02:03:46

标签: ios uitableview uitextfield

目前我在每个UITableViewCell中都有一个UITextField,但问题是,如果有2个或更多单元格,则可以切断单元格。

是否有任何简单的方法可以让键盘打开时单元格可见?

谢谢!

2 个答案:

答案 0 :(得分:2)

对我来说这很好用,以防有人仍然需要答案:

- (void)textFieldDidBeginEditing:(UITextField *)textField
{
    if (self.tableView.contentOffset.y == 0)
    {
        [UIView animateWithDuration:0.0 delay:0.5 options:UIViewAnimationOptionAllowUserInteraction animations:^{
        } completion:^(BOOL finished) {
            UITableViewCell *cell = (UITableViewCell*) [[textField superview] superview];
            [self.tableView scrollToRowAtIndexPath:[self.tableView indexPathForCell:cell] atScrollPosition:UITableViewScrollPositionTop animated:YES];
        }];
    }
}

问题在于滑动到单元格时没有考虑键盘,所以我只是在一个小延迟块中添加了调用。

答案 1 :(得分:1)

如果我正确理解您的问题,您希望视图在键盘出现时滚动。 如果你使viewController成为UITableViewController的子类,我相信你可以免费滚动。遗憾的是,唯一的其他选择并非那么简单。您需要使用委派方法来上下移动视图(如果您希望它使用键盘向上滑动,则为其设置动画)。你可以找到很多答案,所以我不会详细介绍,这里有一些帮助你的链接!

In depth explation here

Great explanation here

Some UIScrollView details here

More here