如何调整UITableView的大小以自定义动态扩展UITableViewCell

时间:2012-02-05 16:33:59

标签: iphone ios uitableview

我使用的是自定义的UITableViewCell,它是为了在触摸时扩展单元格而创建的。我使用beginUpdates / endUpdates执行此操作,后者又调用heightForRowAtIndexPath。它工作正常,单元格扩展,我显示的标签显示。到目前为止一切都很好。

唯一的问题是UITableView本身并没有调整大小来计算单元格的额外高度。

我已经阅读了有关调整框架大小的信息,但它似乎无法正常工作。有谁知道我怎么做,因为感觉它应该很简单!

2 个答案:

答案 0 :(得分:1)

如果我理解你的问题,我相信我最近遇到了同样的问题。我在youtube上的macheads 101教程中找到了答案。他的例子涉及一个UITableView,它自身调整大小以解决键盘显示问题。

[[NSNotificationCenter defaultCenter] addObserver:self selector:
    @selector(keyBoardHidden:) name:UIKeyboardWillHideNotification object:nil];

这是在viewDidLoad方法中,它调用keyBoardHidden,如下所示:

- (void)keyBoardHidden:(NSNotification *)note {
    //[[self tableView:tableView cellForRowAtIndexPath:0].textLabel setText:@""];
    //[tableView setFrame:self.view.bounds];
    CGRect searchBarFrame = searchBar.frame;
    CGRect newTableViewFrame = CGRectMake (0, (float)searchBarFrame.size.height,
        320, 480);
    [tableView setFrame:newTableViewFrame];     
}

他用简单的命令[tableView setFrame:self.view.bounds]调整框架的大小;但是,搜索栏隐藏了顶部单元格,我最初只是通过消隐第一个单元格来解决这个问题,但我决定这是丛林联盟,并告诉UITableView框架从搜索栏的底部开始。我在评论中留下了另一个解决方案,但万一它对你有用。

不幸的是,这只是一个例子。我不知道能够告诉您在代码中实现这些技术的位置。我希望无论如何这都有用。

答案 1 :(得分:0)

我从来没有试过这个,但我会说你不应该调整表视图大小,它是一个滚动视图所以你应该调整contentSize属性