swift 计算label的行数方法
这主要针对是 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的行数方法的更多相关文章
- python计算文件的行数和读取某一行内容的实现方法
		一.计算文件的行数 最简单的办法是把文件读入一个大的列表中,然后统计列表的长度.如果文件的路径是以参数的形式filepath传递的,那么只用一行代码就可以完成我们的需求了:count = len(op ... 
- 【转载】python计算文件的行数和读取某一行内容的实现方法
		一.计算文件的行数 最简单的办法是把文件读入一个大的列表中,然后统计列表的长度.如果文件的路径是以参数的形式filepath传递的,那么只用一行代码就可以完成我们的需求了: count = len(o ... 
- swift计算label动态宽度和高度
		swift计算label动态宽度和高度 func getLabHeigh(labelStr:String,font:UIFont,width:CGFloat) -> CGFloat { let ... 
- iOS开发小技巧--计算label的Size的方法总结
		计算label的Size方法 sizeWithAttributes:方法 适用于不换行的情况,宽度不受限制的情况 /// 根据指定文本和字体计算尺寸 - (CGSize)sizeWithText:(N ... 
- mysql获取group by的总记录行数方法
		mysql获取group by内部可以获取到某字段的记录分组统计总数,而无法统计出分组的记录数. mysql的SQL_CALC_FOUND_ROWS 使用 获取查询的行数 在很多分页的程序中都这样写: ... 
- 【Python基础】计算项目代码行数
		统计代码行数 # coding: utf-8 import os import sys import time def get_line_count(file_path): ""& ... 
- iOS 计算源码行数
		如果要统计ios开发代码,包括头文件的,终端命令进入项目目录下,命令如下 1.列出每个文件的行数 find . -name "*.m" -or -name "*.h&qu ... 
- python计算文件的行数的方法
		1.简单方法把文件读入一个大的列表中,然后统计列表的长度. count = len(open("文件名").readlines()) print count 2.读取文件某一行 ... 
- OC Swift中检查代码行数
		1 打开终端 cd 进去当前项目 2 总行数查看命令 find . -name "*.m" -or -name "*.h" | xargs wc -l ... 
随机推荐
- Windows下nodejs 模块配置 全局模式与本地模式的区别
			第1步:下载.安装文件 (nodejs的官网http://www.nodejs.org/download/ ) 第2步:安装相关模块环境 打开C:\Program Files\nodejs 目录你会发 ... 
- python 学习笔记 redis操作
			Redis redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合).zset(sorte ... 
- 头一次试验angularjs
			<!DOCTYPE html> <head> <meta charset="utf-8" /> <title>angular< ... 
- UVALive 3635 分派
			https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_probl ... 
- VB默认属性、动态数组、Range对象的默认属性的一点不成熟的想法
			1.默认属性 VB6.0有默认属性的特性.当没有给对象指定具体的属性时,"默认属性"是VB6.0将使用的属性.在某些情形下,省略常用属性名,使代码更为精简. 因为CommandBu ... 
- RabbitMQ 将监听的IP从localhost修改为指定IP
			# vim /etc/rabbitmq/rabbitmq.config 搜索 tcp_listeners 更改为:{tcp_listeners, [{"指定的IP", 5672}] ... 
- Ubuntu中配置Thunderbird登录qq邮箱
			1.打开thunderbird 2.开启QQ邮箱pop功能 登录网页版QQ邮箱(email.qq.com) 设置---->>账户---->> 3.配置thunderbird 注 ... 
- 退役&&搬家
			牡丹江与鞍山两站作为最后的结束站.一银一铜就此结束了~ 此博客用来怀念ACM就此保留并不添加任何其它与其无关内容. ------------------------------------------ ... 
- ubuntu 编译源码坏境配置
			git checkout -b newlocal origin/q01v31source build/envsetup.shlunch msm8916_32-usermake -j4 make -j4 ... 
- go并发3
			Go语言并发的设计模式和应用场景 以下设计模式和应用场景来自Google IO上的关于Goroutine的PPT:https://talks.golang.org/2012/concurrency.s ... 
