调用方式 - (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section 无需重新加

Posted

技术标签:

【中文标题】调用方式 - (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section 无需重新加载【英文标题】:way to call - (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section without reloading 【发布时间】:2012-03-07 08:35:57 【问题描述】:

我已经完成了:

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

【问题讨论】:

【参考方案1】:

试试:

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

【讨论】:

【参考方案2】:

您的需求究竟是什么。那么只有我们才能帮助您。

您是否执行过以下步骤来启动 UITableView 的委托

1.包括 UITableViewDelegate 和 UITableViewDataSource 2.将您的 tableViewDelegate 和数据源链接到 Interface Builder 中的 Files Owner

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

[table reloadData] 

想知道您是否需要进一步说明

【讨论】:

【参考方案3】:

这里列出了您可以用来仅影响表的一部分的方法。

插入、删除和移动行和节:

 - (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 异常。

【讨论】:

以上是关于调用方式 - (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section 无需重新加的主要内容,如果未能解决你的问题,请参考以下文章

64 位设备的 TableView 高度错误

由于TableView的Section的头部和尾部高度设置的不规范引起的部分Section中的图片无法正常显示

Swift 中的 MIN() 和 MAX() 并将 Int 转换为 CGFloat

tableView -- tips

以编程方式调用 tableView 单元格的 .delete editingStyle

Xcode:无法使用“(CGFloat)”类型的参数列表调用“String”类型的初始化程序