zoukankan      html  css  js  c++  java
  • UITableView:改变 TableHeaderView 的高度

    参考:http://stackoverflow.com/a/526825

    有这么一种需求,在列表顶端显示一些别样的数据,而这个别样的数据则需要通过一个别样的 View 来展现,它便是 UITableView 的 tableHeaderView。

    倘若 tableHeaderView 里的内容很固定,高度不要随着内容的不同而改变,这样还好。

    如果,高度是需要动态改变的,某些人(比如我)可能就会遇到这样一个难题:

    已经给 view 中的每个子 view 设置过值了,高度算过了,frame 也重新设置过了,可 tableHeaderView 的高度却还是之前的高度,没有变化。内容变多,则会有一部分看不见了;内容变少,则有一部分空白,放在那里实在不好看。

    怎么办??

    view 作为 tableView 的 tableHeaderView,单纯的改变 view 的 frame 是无济于事的,tableView  不会大度到时刻适应它的高度(以后 Apple 会不会改变就不知道了),所以,如何告诉tableView 它的 tableHeaderView 已经改变了?很简单,就一句话(关键最后一句):

    [webView sizeToFit];
    CGRect newFrame = headerView.frame;
    newFrame.size.height = newFrame.size.height + webView.frame.size.height;
    headerView.frame = newFrame;
    [self.tableView setTableHeaderView:headerView];
    

     这样以后,效果就出来了。不过这种过度显得有些生硬,能不能加一点点动画,让它变得顺眼一些呢?试试下面的代码:

    [self.tableView beginUpdates];
    [self.tableView setTableHeaderView:headerView];
    [self.tableView endUpdates];
    
  • 相关阅读:
    Delphi编译器属性(特别修饰符Ref,Unsafe,Volatile,Weak)
    .netcore dapr微服务入门
    Net WebApi一个简单的Token验证
    发布订阅和观察者模式
    NET Core创建Windows服务
    jquery.barrager.js弹幕实现
    跨平台中的RN、Flutter,服务端GraphQL、Serverless,Node和Electron
    分布式系统与高并发高可用
    11 个 Linux 命令
    接口幂等性
  • 原文地址:https://www.cnblogs.com/ihojin/p/tableHeaderView-resizeheight.html
Copyright © 2011-2022 走看看