用swift的朋友们很多都是从ios8开发了,

其中针对table cell高度自动计算的 UITableViewAutomaticDimension 异常好用,但好像只对uilabel对象有效

   当cell中内容比较复杂,比如涉及图文混排或加上其他动态高度的元素,自动高度就失效了

而swift的自动高度资料很少,就整了一个出来

首先是这个extension可以计算出string内容的高度
extension String{

//MARK:获得string内容高度

  func stringHeightWith(fontSize:CGFloat,width:CGFloat)->CGFloat{

    let font =UIFont.systemFontOfSize(fontSize)

    let size =CGSizeMake(width,CGFloat.max)

    let paragraphStyle =NSMutableParagraphStyle()

    paragraphStyle.lineBreakMode= .ByWordWrapping;

    let attributes = [NSFontAttributeName:font, NSParagraphStyleAttributeName:paragraphStyle.copy()]

    let text =selfasNSString

    let rect = text.boundingRectWithSize(size, options:.UsesLineFragmentOrigin, attributes: attributes, context:nil)

    return rect.size.height

  }//funcstringHeightWith

}//extension end
然后可以用这个方法计算cell内各个元素的高度
//MARK: 计算cell的高度

func cellHeightByData(data:NSDictionary)->CGFloat{

var content=data.stringAttributeForKey("content")

var height=content.stringHeightWith(17,width:300)

var imgSrc=data.stringAttributeForKey("image") as NSString

ifimgSrc.length==0

{

return59.0+height+40.0

}

return59.0+height+5.0+112.0+40.0

}
最后在uitable的heightForRowAtIndexPath方法中调用
func tableView(tableView:UITableView, heightForRowAtIndexPath indexPath:NSIndexPath) ->CGFloat{

  let data :JobLogsDataModel=tableData[indexPath.row] as JobLogsDataModel

  return cellHeightByString(data)

//return UITableViewAutomaticDimension

}

swift 版本 UItableViewCell的动态高度补足的更多相关文章

  1. AutoLayout深入浅出五[UITableView动态高度]

    本文转载至 http://grayluo.github.io//WeiFocusIo/autolayout/2015/02/01/autolayout5/ 我们经常会遇到UITableViewCell ...

  2. AutoLayout处理UITableView动态高度

    我们经常会遇到UITableViewCell的高度要跟随内容而调整,在未引入AutoLayout之前,我们使用以下方法计算Label高度,然后heightForRowAtIndexPath中返回计算的 ...

  3. 使用Autolayout xib实现动态高度的TableViewCell

    http://my.oschina.net/u/2360693/blog/481236?p={{totalPage}} 创建Xib文件 首先将Cell做好布局,调整到满意的位置和宽度,然后开始做Aut ...

  4. iOS开发——使用Autolayout生成动态高度的TableViewCell单元格

    步骤一.TableViewCell中使用Autolayout 要点:Cell的高度必须在Constraints中指明,但不能定死,需要让内部由内容决定高度的View决定动态高度. 如UILabel设置 ...

  5. 升级xcode8之后出现报错提示,提示swift版本问题

    最近Xcode升级了,出现了各种蛋疼的错误提示,今天遇到个导入框架出现了提示Swift版本的问题,具体如下: "Use Legacy Swift Language Version" ...

  6. 窥探Swift系列博客说明及其Swift版本间更新

    Swift到目前为止仍在更新,每次更新都会推陈出新,一些Swift旧版本中的东西在新Swift中并不适用,而且新版本的Swift会添加新的功能.到目前为止,Swift为2.1版本.去年翻译的Swift ...

  7. soui中,列表控件动态高度的使用注意

    1.listview的模板template中,需要增加defHeight属性,即默认高度,同时,不能出现itemHeight属性,否则动态高度会失效 2.数据适配器中,重写getViewDesired ...

  8. CocoaPods 更新慢&swift版本适配

    一.更新慢的问题 使用CocoaPods来添加第三方类库,无论是执行pod install还是pod update都卡在了Analyzing dependencies不动 原因在于当执行以上两个命令的 ...

  9. css中height 100vh的应用场景,动态高度百分比布局,浏览器视区大小单位

    css中height 100vh的应用场景,动态高度百分比布局,浏览器视区大小单位 height:100vh 一些只能vw, vh才能完成的应用场景: 1. 场景之:元素的尺寸限制 vw vh 主要是 ...

随机推荐

  1. Entity Framework关联实体的三种加载方法

    推荐文章 EF性能之关联加载 总结很好 一:介绍三种加载方式 Entity Framework作为一个优秀的ORM框架,它使得操作数据库就像操作内存中的数据一样,但是这种抽象是有性能代价的,故鱼和熊掌 ...

  2. OneAlert 入门(二)——事件分析

    OneAlert 是国内首个 SaaS 模式的云告警平台,集成国内外主流监控/支撑系统,实现一个平台上集中处理所有 IT 事件,提升 IT 可靠性.有了 OneAlert,你可以更快更合理地为事件划分 ...

  3. draw9patch超详细教程

    这篇文章是android开发人员的必备知识,内容摘选自网络,友我为大家整理和总结,不求完美,但是有用. 视频教程地址:http://player.youku.com/player.php/sid/XM ...

  4. WPF WebBroswer可以用到的接口

    http://pinvoke.net/default.aspx/Interfaces.DWebBrowserEvents2 [ComImport, SuppressUnmanagedCodeSecur ...

  5. 新浪微博授权时出现"关注 *** 的微博"

    基本设置完成后, 保证scope是 "all" 或 至少 包含 "follow_app_official_microblog". 测试时, 保证你的测试账号没有 ...

  6. Eclipse超级完美汉化教程

    转自:http://jingyan.baidu.com/article/e75057f28401a8ebc91a899e.html 是中国人都喜欢汉化的东西,除非你想挑战英文,抑或你就是英语高手.百度 ...

  7. HDU-1253 胜利大逃亡 (BFS)

    此题可以做为三维深搜模板题.. 胜利大逃亡 Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Ot ...

  8. WCF性能优势体现 【转】

    WCF性能优势决定了其受欢迎程度,这些优势主要都体现在:统一性:互操作性:安全与可信赖:兼容性等方面. WCF是使用托管代码建立和运行面向服务(Service Oriented)应用程序的统一框架. ...

  9. SignalR--Http/WebSockets消息推送

    官网API: http://www.asp.net/signalr/overview/signalr-20/hubs-api/hubs-api-guide-server 参考: http://www. ...

  10. BI-SqlServer

    一.概述 SqlServer数据仓库 ETL组件 IntegrationService OLAP组件 AnalysisService 报表 ReportingService MDX(查多维数据集用的) ...