使 UITableViewHeaderFooterView 不粘
Posted
技术标签:
【中文标题】使 UITableViewHeaderFooterView 不粘【英文标题】:Make UITableViewHeaderFooterView non sticky 【发布时间】:2015-01-09 07:53:57 【问题描述】:我为所有单元格设置了一个共同的页脚,我将其设置为
- (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section
我知道默认情况下页脚粘在 UITableView 的底部,我不希望页脚粘在表格的底部,最好的方法是什么?
我知道的一种方法是添加额外的行并在那里显示页脚,但我正在寻找比这更清洁的方法。
谁能帮我解决这个问题?
【问题讨论】:
【参考方案1】:您可以将UITableViewStyle
设置为UITableViewStyleGrouped
。
使用这个初始化器。
- (instancetype)initWithFrame:(CGRect)frame style:(UITableViewStyle)style;
您可以在情节提要上进行设置。
【讨论】:
我正在使用故事板,所以我认为我需要从故事板更改样式【参考方案2】:您可以创建一个额外的uitableviewcell
并附加在 tableview 的最后。在numberOfRowsInSection:
方法中可以加一个1like
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
return [objectArray count]+1 ;
在tableView:cellForRowAtIndexPath:
方法中
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
if(indexpath.row == [objectArray count])
//create footer cell
else
//show normal cell
【讨论】:
suhit 的回答是正确的。表格视图页脚旨在粘贴,并且试图防止这种情况会很糟糕。在一个单元格下获得额外内容而不粘连的最佳方法是另一个单元格。【参考方案3】:如果您恰好有页脚的静态高度并且没有更改contentInsets
,您可以试试这个(假设页脚高度为 44):
self.tableView.contentInset = UIEdgeInsetsMake(0, 0, -44, 0)
【讨论】:
以上是关于使 UITableViewHeaderFooterView 不粘的主要内容,如果未能解决你的问题,请参考以下文章