在我的表格中,我使用UITextField
作为子视图的单元格。我也可以编辑它,但只对表格中的上部单元格我也看到,我编辑的内容,因为键盘隐藏了下面的单元格。
现在我该怎么做,滚动我要编辑的单元格移到顶部?
我试过
selectRowAtIndexPath:indexPathOfCurrrentCell animated:NO scrollPostion:UITableViewSchrollPositionTop
和
scrollToRowAtIndexPath:idexPathOfCurrentCell atScrollPosition:UITableViewSchrollPositionTop animated:NO
但它都不起作用。我必须使用其他命令或添加其他内容吗?我该改变什么?
由于
答案 0 :(得分:2)
如果无法手动将tableView滚动到单元格可见的位置;代码也不会。
解决方案是将tableView的框架设置为具有尊重键盘高度170点的高度。
您可以尝试这样的事情:
tableView.frame = CGRectMake(tableView.frame.origin.x, tableView.frame.origin.y, tableView.frame.size.width, tableView.frame.size.height-170);
在textField成为第一个响应者时调用的方法中执行此操作。
答案 1 :(得分:0)
看一下这篇文章。我想你会找到你需要的东西。
Get UITableView to scroll to the selected UITextField and Avoid Being Hidden by Keyboard
答案 2 :(得分:0)
使用UITextField的委托方法
答案 3 :(得分:0)
即使我遇到了这个滚动问题,我使用下面的逻辑来摆脱这个问题。 这工作正常
-(void)textFieldDidBeginEditing:(UITextField *)textField
{
if (textField==textFieldOfYourInterest )
{
CGRect frame = self.view.frame;
if ([textField isFirstResponder] && self.view.frame.origin.y >= 0)
{
frame.origin.y -= 70;
}
else if (![textField isFirstResponder] && self.view.frame.origin.y < 0)
{
frame.origin.y += 70;
}
[self.view setFrame:frame];
}
}
- (BOOL)textFieldShouldReturn:(UITextField *)textField
{
CGRect frame = self.view.frame;
if (![topTextFieldName isFirstResponder] && self.view.frame.origin.y < 0)
{
frame.origin.y += 70;
}
[self.view setFrame:frame];
NSLog(@"text field should return");
[textField resignFirstResponder];
return YES;
}
如果有任何问题归还我。
由于 Nagaraja Sathe