IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    一个自适应tableView内容高度的例子

    helloitworks发表于 2014-06-05 11:05:16
    love 0

    该demo主要实现的功能:当tableView的内容少时,tableView自适应内容,高度变小,窗口自适应tableView,同样高度变小。当tableView的内容多时,tableView自适应内容,高度变大,窗口自适应tableView,同样高度变大

    df6af46e9d0ef338fe2c644f3451b40d

    3579e7d1b51cee4f93d933d7a308fc95

    一、tableView自适应内容高度,采用的方法是:计算tableView有多少行,乘以每一行的高度,算出tableView要完全自适应这些内容应该具备的高度,将算出来的这个高赋值给嵌入了tableView的scrollView

    二、窗口自适应tableView高度,采用的方法是:

    1、用auto layout对嵌入tableView的scrollView与上下控件之间的垂直间隔进行约束。

    2、同时也对scrollView的高度添加约束条件,如下图所示。

    59eaa9e86b8570007684b68f44929579

    3、在内容变化时,算出scrollView要适应这些内容应该具备的高度,通过代码改变scrollView高的约束条件,这时候窗口就会自适应tableView高度。关键代码如下所示:

    self.scrollViewHeightConstraint.constant = (kTableRowHeight + 2) * self.tableContents.count ;

    注:

    因为tableView是嵌入到scrollView的,所以窗口自适应tableView高度的问题转化成窗口自适应scrollView的问题。

    如果采用纯代码的方法来绘制窗口与控件,会比较复杂。而用auto layout非常简单地就可以实现自适应高度的效果,在这个例子中甚至都不用修改窗口的frame就可以让窗口自适应tableView的高度。

    auto layout只支持10.7及以上系统

    源代码地址:

    https://github.com/helloitworks/CloseBrowserToContinue



沪ICP备19023445号-2号
友情链接