我使用的是自定义的UITableViewCell,它是为了在触摸时扩展单元格而创建的。我使用beginUpdates / endUpdates执行此操作,后者又调用heightForRowAtIndexPath。它工作正常,单元格扩展,我显示的标签显示。到目前为止一切都很好。
唯一的问题是UITableView本身并没有调整大小来计算单元格的额外高度。
我已经阅读了有关调整框架大小的信息,但它似乎无法正常工作。有谁知道我怎么做,因为感觉它应该很简单!
答案 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属性