使 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 不粘的主要内容,如果未能解决你的问题,请参考以下文章

使引导容器大小变大会使页面无响应

Css使Div自适应居中

如何用word使图片上下居中

如何使 RelativeLayout 半透明但不使活动

如何使图像自动调整大小,使宽度为 100% 并相应调整高度?

如何才能使图形化管理MySQL更轻松(一)