如何管理包含文本字段的表视图的滚动

时间:2011-11-05 21:07:10

标签: objective-c uitableview

当我尝试滚动并编辑UITableView底部的单元格时,我无法让我的单元格正确定位在键盘上方。实际上键盘隐藏了一半的表视图。

我还为我的单元格分别创建了一个自定义单元格类。因此,文本字段委托仅在该类上可用。我不能在我的表biew的视图控制器中使用它们

我看到很多答案都在谈论改变视图大小等等......但到目前为止,它们都没有很好地运作。

任何人都可以通过一段代码帮助我解决这个问题

2 个答案:

答案 0 :(得分:1)

现在更简单的方法(不知道这有多久):如果你要覆盖viewWillAppear,请确保包含在顶部

[super viewWillAppear:animated];

我已准备好开始收听键盘事件,设置和删除约束,只有这一行消除了所有其他代码。

答案 1 :(得分:0)

您想要调整UITableView的scrollView组件。设置视图控制器以响应键盘通知。像这样:

- (void)viewWillAppear:(BOOL)animated 
{
    [super viewWillAppear:animated];
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:) name:UIKeyboardWillShowNotification object:nil];
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillHide:) name:UIKeyboardWillHideNotification object:nil];

}


- (void)viewWillDisappear:(BOOL)animated 
{
    [super viewWillDisappear:animated];
    [[NSNotificationCenter defaultCenter] removeObserver:self name:UIKeyboardWillShowNotification object:nil];
    [[NSNotificationCenter defaultCenter] removeObserver:self name:UIKeyboardWillHideNotification object:nil];
}

然后创建一个keyboardWillShow:函数并通过操作tableView.scrollview.contentOffset来调整tableview(它可能是tableView.contentOffset,我不在xcode附近)。确保使用keyboardWillHide函数将其调整回0,0。