UITableView无法向下滚动。键盘显示但未同时显示

时间:2012-10-01 19:40:57

标签: uitableview uiimageview uitextview

我有一个UITableView,其UITableViewCell可以通过函数tableView:heightForRowAtIndexPath独立更改其大小。它们存储了不同大小的UIImage个。当我点击图像时,会显示键盘(假设它是用于标记图像)。

当我有,比如3个单元格(图像),总高度为1像素 小于屏幕尺寸时,这一切都很好。键盘显示,我可以滚动查看所有单元格(图像)。

但是,当我再添加一个,推动总大小超过屏幕时,它都会中断。键盘似乎显示出来(我在顶部有一个额外的按钮,使其比原始键盘高出一些像素,如图所示)。但我不能写任何东西。键盘顶部的按钮用于重新键盘,但它不起作用。它有点卡住了。

项目可以在这里下载:https://github.com/TokyoBirdy/cecilia/tree/master/Test(原谅凌乱的代码)

1 个答案:

答案 0 :(得分:0)

通过删除编辑视图原点的代码,我能够解决锁定滚动的问题。另外,我在计算中使用tableview的contentSize属性实现了向底部单元格的滚动。

-(void) keyboardWillShow:(NSNotification *)note
{

  if(!isKeyboardShowing)
    {
    isKeyboardShowing = YES;
    CGRect keyboardBounds;
    [[note.userInfo valueForKey:UIKeyboardBoundsUserInfoKey] getValue: &keyboardBounds];
    CGFloat keyboardHeight = keyboardBounds.size.height;

            CGRect frame = self.view.frame;
            frame.size.height += keyboardHeight;
            self.view.frame = frame;

    CGPoint scrollPoint = frame.origin;
    scrollPoint.y += _tableView.contentSize.height - keyboardHeight;
    [_tableView setContentOffset:scrollPoint animated:YES];
    }
}