无法在显示的键盘上正确缩短tableView

时间:2015-02-11 18:55:51

标签: ios objective-c uitableview

  • 我有一个带有标签和文本字段的tableView 10行
  • 每行都是基于indexPath自定义创建的。
  • 我在第10行有 UITextView
  • 当我选择textView并显示键盘时,我试图缩短并移动表格视图

我做:

-(void)textViewDidBeginEditing:(UITextView *)textView
{
    [UIView beginAnimations:@"moveView" context:nil];
    [UIView setAnimationDuration:0.0];
    self.frame=CGRectMake(0,66,ScreenWidth,ScreenHeight - 250);
    [UIView commitAnimations];
    [self scrollToBottomAnimated:YES];
}

tableView确实移动但行显示失真。含义我按以下顺序看到行:

  • 第8行
  • 第9行
  • 第2行//意想不到且无法使用
  • 第10行

移动了tableView时,我没有调用第2行的cellforIndexPath。

我希望我能告诉你。

你能提出什么建议吗?

修改

不确定,但看起来问题是由于重复使用细胞。扭曲的细胞被重复使用。如果我设置并检查单元格标记并执行以下操作

[[cell.contentView subviews]
 makeObjectsPerformSelector:@selector(removeFromSuperview)];
它似乎有效。如果有人可以提出其他建议吗?

1 个答案:

答案 0 :(得分:0)

尝试使用contentInset而不是框架进行游戏。您的UITableView不会缩短,但键盘不会隐藏内容。

[self.tableView setContentInset:UIEdgeInsetsMake(0, 0, 250, 0)];