调用方式 - (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)部分没有重新加载

时间:2012-03-07 08:35:57

标签: iphone objective-c ios ipad

我做了:

[tableView setNeedsLayout][tableView setNeedsDisplay],但这不会调用该委托。有没有办法重新布局tableView而不重新加载数据(即:调用reloadData)

3 个答案:

答案 0 :(得分:1)

尝试:

[tableView beginUpdates];
//do stuff...
[tableView endUpdates];

答案 1 :(得分:0)

你的确需要什么。然后我们才能帮助你。

您是否已执行以下步骤来启动UITableView

的委托

1.包含UITableViewDelegate和UITableViewDataSource 2.将tableViewDelegate和数据源链接到Interface Builder中的文件所有者

如果你想调用你的tableview委托方法,

[table reloadData] 

想知道您是否需要进一步澄清

答案 2 :(得分:0)

以下是您可能仅用于影响表格一部分的方法列表。

插入,删除和移动行和部分:

 - (void)insertRowsAtIndexPaths:(NSArray *)indexPaths withRowAnimation:(UITableViewRowAnimation)animation;
 - (void)insertSections:(NSIndexSet *)sections withRowAnimation:(UITableViewRowAnimation)animation;
 - (void)deleteRowsAtIndexPaths:(NSArray *)indexPaths withRowAnimation:(UITableViewRowAnimation)animation;
 - (void)deleteSections:(NSIndexSet *)sections withRowAnimation:(UITableViewRowAnimation)animation;
 - (void)moveRowAtIndexPath:(NSIndexPath *)indexPath toIndexPath:(NSIndexPath *)newIndexPath;
 - (void)moveSection:(NSInteger)section toSection:(NSInteger)newSection;

重新加载:

 - (void)reloadRowsAtIndexPaths:(NSArray *)indexPaths withRowAnimation:(UITableViewRowAnimation)animation;
 - (void)reloadSectionIndexTitles;
 - (void)reloadSections:(NSIndexSet *)sections withRowAnimation:(UITableViewRowAnimation)animation;

不要忘记将代码放在

[tableView beginUpdates];
//do stuff...
[tableView endUpdates];

阻止@Wise Shepherd建议避免tableView和index out of bounds例外的失禁状态。