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 ...
随机推荐
- SVN服务器搭建和使用(二)
SVN服务器搭建和使用(二) 上一篇介绍了VisualSVN Server和TortoiseSVN的下载,安装,汉化.这篇介绍一下如何使用VisualSVN Server建立版本库,以及Tortois ...
- java 内核
摘自:http://www.cubrid.org/blog/tags/Java/
- java web使用gradle配置详情
博客说明:本片博客为FSSARB项目片面部分,目前项目还在更新中,请持续关注... 序言 项目构建工具从ant到maven,再到gradle,这是在严峻的技术考验下不停过度的结果.依照百度百科的阐述, ...
- 名词王国里的死刑execution in the kingdom of nouns
http://www.cnblogs.com/bigfish--/archive/2011/12/31/2308407.htmlhttp://justjavac.com/java/2012/07/23 ...
- python 中的 try/except/else/finally语句
1.python中try/except/else/finally正常的语句是这样的: try: normal excute block except A: Except A handle except ...
- Linux连接Internet
Linux连接Internet 1. Linux网卡 1.1 查看内核所扑捉到的网卡信息(已经安装到服务器并且被Linux内核识别的网卡) [root@www ~]# dmesg | grep -in ...
- PL/SQL通过免安装客户端连接远端ORACLE数据库
参考百度经验:http://jingyan.baidu.com/article/375c8e19b4094d25f2a2291a.html
- 在windows上搭建react-native的android环境
参考文档: http://facebook.github.io/react-native/docs/getting-started.html http://reactnative.cn/docs/0. ...
- DebugLog 打印方法执行时间
DebugLog 打印方法执行时间 用于方便调试性能问题的打印插件.给访法加上@DebugLog,就能输出该方法的调用参数,以及执行时间. Project gradle配置 // Top-level ...
- Java多线程初探
多线程 单线程的程序只有一个顺序执行流.多个顺序流之间互不干扰. 多线程的创建 定义Thread类的子类,重写该类的run()方法. 创建Thread子类的实例. 调用线程对象的start()方法来启 ...