• 让UITableView的headerView或footerView尾随cell一起滚动


    以headerView为例(footerView处理方式类似),下面四种方式均有独到之处: 

    1、无分区 最简单也最常见。将headerView设置为整个tableView的headerView,而不是 section 0 的headerView
    self.tableView.tableHeaderView = headerView。

    2、多个section 设置 tableView 的 style 为 UITableViewStyleGrouped。然后

    <span style="font-size:14px;">- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{
        return 分区数;
    }
    - (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section{
        if (section == 0) {
           <span>	</span>return 1; // 注意当某个分区不须要headerView时,也须要又一次设置高度。(Group时有默认高度)
        }
        return 170;
    }
    - (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section{
        if (section == 0) {
            return nil;
        }
        return headerView; 
    }</span>

    这样确实能够让 headerView 。在滚动tableView的时候,尾随着cell的内容一起滚动。可是cell都被加上了边框。并且cell的水平显示范围变窄了。

          可是我们能够尝试调整cell的Frame。或者自己定义cell。

     

     3、多个section 将每一个分区第一个cell作为分区的headerView

           重写cell,就不贴代码了,写的代码较方法2几乎相同,可是效果很好。

    4、去掉UItableview headerview黏性 (不推荐,但思路不错,方法应该还能够再优化下)

    <span style="font-size:14px;">- (void)scrollViewDidScroll:(UIScrollView *)scrollView {  
        if (scrollView == self.tableView)  
        {  
            CGFloat sectionHeaderHeight = HeaderHeight;  
            if (scrollView.contentOffset.y<=sectionHeaderHeight&&scrollView.contentOffset.y>=0) {  
                scrollView.contentInset = UIEdgeInsetsMake(-scrollView.contentOffset.y, 0, 0, 0);  
            } else if (scrollView.contentOffset.y>=sectionHeaderHeight) {  
                scrollView.contentInset = UIEdgeInsetsMake(-sectionHeaderHeight, 0, 0, 0);  
            }  
        }  
    }</span>

    可是。当可滚动的位置太小,scrollView会停在滚到的位置上。






     

  • 相关阅读:
    【原】IOS文件操作
    【原】UIWebView加载本地pdf、doc等文件
    【转】好东西!sqlite3中BLOB数据类型存储大对象运用示例
    ASP.NET环境下配置FCKEditor并上传图片及其它文件
    iis php环境配置完整版
    js校验服务器控件是否为空
    vim 分屏显示
    各大搜索引擎网站提交端口的快速通道
    unix动态链接库操作
    回车(CR)与换行(LF), '\r'和'\n'的区别
  • 原文地址:https://www.cnblogs.com/wgwyanfs/p/7066845.html
Copyright © 2020-2023  润新知