ara*_*aid 57 iphone resize uitableview uitextview
我有经典的UITableView分组,每个单元格内都有可编辑的UITextViews.这个文本视图可以是单行或多行的,我希望单元格在用户写入时增加其高度,文本开始换行.
我的问题是:我是否需要重新加载整个表格以增加单元格的高度?没有其他方法吗?
我一直在搜索,以前的答案和教程只是讨论如何计算文本高度,如何实现heightForRowAtIndexPath ...我已经知道的事情.我担心的是,为了达到我想要的效果,每次用户输入一个新角色时,我都必须计算高度并重新加载表格,我觉得这个角色并不干净或高效.
谢谢.
And*_*rev 85
[tableView beginUpdates];
[tableView endUpdates];
Run Code Online (Sandbox Code Playgroud)
ric*_*son 62
您不必总是重新加载整个表.您只需重新加载那一行即可.
[tableView reloadRowsAtIndexPaths:[NSArray arrayWithObject:[NSIndexPath indexPathForRow:0 inSection:0]] withRowAnimation:UITableViewRowAnimationFade];
Run Code Online (Sandbox Code Playgroud)
Elf*_*red 27
更具体地讲,是的,你必须实现tableView:heightForRowAtIndexPath:
计算新的高度,然后做的rickharrison说和呼叫[tableView reloadRowsAtIndexPaths:withRowAnimation]
.比方说你的细胞可以有一个扩展的身高和正常身高,和你想的时候拍了拍他们成长.你可以做:
-(CGFloat)tableView:(UITableView*)tableView heightForRowAtIndexPath:(NSIndexPath*) indexPath
{
if ([expandedPaths containsObject:indexPath]) {
return 80;
} else {
return 44;
}
}
-(void)tableView:(UITableView*) didSelectRowAtIndexPath:(NSIndexPath*) indexPath
{
[expandedPaths addObject:indexPath];
[tableView reloadRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade];
}
Run Code Online (Sandbox Code Playgroud)
-reloadRowsAtIndexPaths:withRowAnimation
即使我改变了Cell的框架,也没有调整UITableViewCell高度的大小.它只有在我跟着它时才有效-reloadData
:
[tableView reloadRowsAtIndexPaths:[NSArray arrayWithObject:[NSIndexPath indexPathForRow:0 inSection:0]] withRowAnimation:UITableViewRowAnimationFade];
[tableView reloadData];
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
54573 次 |
最近记录: |