TableView是iOS开发中经常使用的组件。有些表格由于UILabel包括的文本字数不一样,须要显示的高度也会不同,因此须要动态计算static cell的高度。我用的是static cell,注意每行的高度都须要指定,默认样式的cell高度是44,第三行(row == 2)进行了动态计算。第四行须要依据是否有内容推断是否显示,没有则返回高度0。

依据实际尝试和查看国外文章。发现

func tableView(tableView: UITableView, estimatedHeightForRowAtIndexPath indexPath: NSIndexPath) 对于静态表格好像没有作用。也有可能是我没有弄清楚正确使用方法。

  override func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
if indexPath.row == 2 {
return heightForView(task.summary!, font: UIFont(name: "Helvetica", size: 15.0)!, width: 340) + 30
} else if indexPath.row == 3 {
if task.type == TaskType.TYPE_PLAN.rawValue {
if let descr = task.descr {
return heightForView(descr, font: UIFont(name: "Helvetica", size: 15.0)!, width: 340) + 30
}
} else {
return 0
}
} else if indexPath.row == 4 {
return 110
} return 44
} // 计算高度
func heightForView(text:String, font:UIFont, width:CGFloat) -> CGFloat{
let label:UILabel = UILabel(frame: CGRectMake(0, 0, width, CGFloat.max))
label.numberOfLines = 0
label.lineBreakMode = NSLineBreakMode.ByWordWrapping
label.font = font
label.text = text label.sizeToFit()
return label.frame.height
}

最新文章

  1. AVL树的平衡算法(JAVA实现)
  2. MongoDB导入(mongoimport)-导出(mongoexport)工具使用
  3. ORA-29857: domain indexes and/or secondary objects
  4. ubuntu环境变量添加变量
  5. 完成端口(IOCP)怎么判断某个连接是否断开
  6. 【Android动画】之Tween动画 (渐变、缩放、位移、旋转)
  7. _itemFailedToPlayToEnd: { kind = 1; new = 2; old = 0; }
  8. perl post 带上请求头
  9. javascript中类式继承和原型式继承的实现方法和区别
  10. HDU - 1035
  11. JUnit介绍(转)
  12. 从json-lib转成jackson的遇到的问题
  13. 同一个世界(erlang解题答案)
  14. SQLQueryStress
  15. 利用C#进行AUTOCAD的二次开发
  16. PHP快速排序(递归)
  17. 从命令行模式运行Windows管理工具。
  18. 解决KVM中宿主机通过console无法连接客户机
  19. javascript:base.superclass.constructor.call(this,config)
  20. linux进程概论

热门文章

  1. 【Henu ACM Round #13 D】A Trivial Problem
  2. 【2017 Multi-University Training Contest - Team 1 1002】Balala Power!
  3. NStimer 被堵塞
  4. Bounding Volume Hierarchy BVH in OpenCASCADE
  5. POJ 1328 Radar Installation 贪心题解
  6. app 设计原则 ,步骤
  7. 基于x86平台的Solaris安装视频(时长25分钟)
  8. Android Gson解析json工具类封装
  9. API(Application Programming Interface,应用程序编程接口)
  10. javafx checkbox