这主要针对是 cell上label自适应高度,

let lineSpaceKey = "lineSpaceKey"

extension UILabel{

var lineSpace :CGFloat?{

set{

objc_setAssociatedObject(self, lineSpaceKey, newValue, .OBJC_ASSOCIATION_RETAIN_NONATOMIC)

}

get{

return (objc_getAssociatedObject(self, lineSpaceKey) as? CGFloat)

}

}

//label 内容行数  这的size 是label 的宽和高  lineSpace 是行间距

func textNumLinesWithHeight(size:CGSize) -> CGFloat {

let paragraphStyle = NSMutableParagraphStyle()

paragraphStyle.lineBreakMode = self.lineBreakMode

paragraphStyle.alignment = self.textAlignment

if self.lineSpace == nil {

self.lineSpace = 0

}

paragraphStyle.lineSpacing = self.lineSpace!

let attributes = [NSFontAttributeName : self.font,

NSParagraphStyleAttributeName : paragraphStyle];

let contentSize = self.text!.boundingRectWithSize(size, options: [.UsesFontLeading,.UsesLineFragmentOrigin] , attributes: attributes, context: nil).size

let labelNumber = contentSize.height / self.font.lineHeight

return labelNumber

}

}

swift 计算label的行数方法的更多相关文章

  1. python计算文件的行数和读取某一行内容的实现方法

    一.计算文件的行数 最简单的办法是把文件读入一个大的列表中,然后统计列表的长度.如果文件的路径是以参数的形式filepath传递的,那么只用一行代码就可以完成我们的需求了:count = len(op ...

  2. 【转载】python计算文件的行数和读取某一行内容的实现方法

    一.计算文件的行数 最简单的办法是把文件读入一个大的列表中,然后统计列表的长度.如果文件的路径是以参数的形式filepath传递的,那么只用一行代码就可以完成我们的需求了: count = len(o ...

  3. swift计算label动态宽度和高度

    swift计算label动态宽度和高度 func getLabHeigh(labelStr:String,font:UIFont,width:CGFloat) -> CGFloat { let ...

  4. iOS开发小技巧--计算label的Size的方法总结

    计算label的Size方法 sizeWithAttributes:方法 适用于不换行的情况,宽度不受限制的情况 /// 根据指定文本和字体计算尺寸 - (CGSize)sizeWithText:(N ...

  5. mysql获取group by的总记录行数方法

    mysql获取group by内部可以获取到某字段的记录分组统计总数,而无法统计出分组的记录数. mysql的SQL_CALC_FOUND_ROWS 使用 获取查询的行数 在很多分页的程序中都这样写: ...

  6. 【Python基础】计算项目代码行数

    统计代码行数 # coding: utf-8 import os import sys import time def get_line_count(file_path): ""& ...

  7. iOS 计算源码行数

    如果要统计ios开发代码,包括头文件的,终端命令进入项目目录下,命令如下 1.列出每个文件的行数 find . -name "*.m" -or -name "*.h&qu ...

  8. python计算文件的行数的方法

    1.简单方法把文件读入一个大的列表中,然后统计列表的长度.   count = len(open("文件名").readlines()) print count 2.读取文件某一行 ...

  9. OC Swift中检查代码行数

    1 打开终端  cd 进去当前项目 2 总行数查看命令     find . -name "*.m" -or -name "*.h" | xargs wc -l ...

随机推荐

  1. docker私有库UI和添加私有库到本机能够push和pull

    $ docker run -p 8080:8080 -e REG1=http://104.236.246.10:5000/v1/ atcol/docker-registry-ui$ docker ru ...

  2. 添加 index_combine hint的索引

    想试验一下 index_combine这个hint,于是做了如下试验. 1.创建一个具有若干index的表 SQL> create table test as select object_id, ...

  3. 话说C++中的左值、纯右值、将亡值

    写在前面 C++中有“左值”.“右值”的概念,C++11以后,又有了“左值”.“纯右值”.“将亡值”的概念.关于这些概念,许多资料上都有介绍,本文在拾人牙慧的基础上又加入了一些自己的一些理解,同时提出 ...

  4. juqery模板 Templates

    现在已经有了许多JavaScript的解决方案模板,从这方面说,标准化的模板解决方案必然是大势所趋.在本节中,我们向你简要描述四个最流行最有趣的模板.现有的模板解决方案能解决什么?那些特色在jQuer ...

  5. 新接触PHP课程,给自己定制的目标

    PHP课程初接触,对自己的计划和展望恢复 从今天开始了为期四个半月的关于PHP课程的学习.从零开始接触一门新的技术知识,而且还是在短短四个月内就要掌握牢固,其实确确实实感觉不易.可是世间再没有路,不还 ...

  6. underscore api

    http://files.cnblogs.com/files/hwd13/underscore.rar

  7. kafka使用getOffsetsBefore()获取获取offset异常分析

    根据时间戳获取kafka的topic的偏移量,结果获取的偏移量量数据组的长度为0,就会出现如下的数组下标越界的异常,实现的原理是使用了kafka的getOffsetsBefore()方法: Excep ...

  8. javascript面向对象(学习和理解)

    js中创建变量基本如下: var name = 'saodiseng'; var email = 'wuyucoder@126.com'; var website = 'http://www.cnbl ...

  9. js多个输入框运算计算结果输出到另一个输入框

      <div id="ckjrzy_4_14_15"> <div id="ckjrzy_4_14_17">收益计算器 </div& ...

  10. 使用phpmailer发送smtp邮件时提示 SMTP Error: Could not authenticate 错误

    使用phpmailer发送smtp邮件时提示 SMTP Error: Could not authenticate 错误 这个错误是验证出现错误, $mail->Port = 25; //SMT ...