IOS开发计算文本尺寸

作者:无名    it人知识库   2020-02-12 00:00:00

在IOS开发中例如微博,QQ聊天界面中要显示大量的文字信息,这样需要计算出文字部分的尺寸,才能设计出合适的控件尺寸和位置。下面是IOS 7.0计算文本尺寸的方法。
- (CGRect)boundingRectWithSize:(CGSize)size options:(NSStringDrawingOptions)options attributes:(NSDictionary *)attributes context:(NSStringDrawingContext *)context NS_AVAILABLE_IOS(7_0);
这是NSString的对象方法,一个字符串实例调用该方法时,方法会通过传入的参数返回一个CGRect型数据,这个数据的size就是此时字符串显示成文本的尺寸。
size:限制尺寸,用于计算文本绘制时占据的矩形块,例如微博开发中size.w不超过scence.w。可以将size.y设置为无限大MAXFLOAT以便于显示所有文字内容。
option:文本绘制时的附加选项。
有四种类型:1.NSStringDrawingTruncatesLastVisibleLine 2.NSStringDrawingUsesLineFragmentOrigin
3. NSStringDrawingUsesFontLeading
4. NSStringDrawingUsesDeviceMetrics
通常使用NSStringDrawingUsesLineFragmentOrigin,如果options参数为NSStringDrawingUsesLineFragmentOrigin,那么整个文本将以每行组成的矩形为单位计算整个文本的尺寸。
attributes:将文本UIFront存入字典传到这里。例如, NSDictionary *dict = @{NSFontAttributeName : font}
context:context上下文。包括一些信息,例如如何调整字间距以及缩放。最终,该对象包含的信息将用于文本绘制。该参数可为 nil 。

这篇内容就是由it人知识库 小编为各位整理 原文链接:https://m.itpeo.net/15324/3708364.html

Tag:开发计算文本尺寸



我要分享:

  • 微信
  • QQ好友
  • QQ空间
  • 新浪微博


热门推荐

『摄影师访谈』Walker Evans,摄影是对事物本身的超越

『摄影师访谈』Walker Evans,摄影是对事物本身的超越

Walker Evans(1903-1975)为美国农场安全管理局(Farm Security Administ... ...

NodeJs 多核多进程并行框架实作

NodeJs 多核多进程并行框架实作

多核编程的重要性无需多说, 我们直奔主题,目前nodejs 的网络服务器有以下几种支持多进程的方式: #1 开... ...

"[如意猎奇]社会各行业内幕 各位看客斟酌看待

3楼 我是相机促销员 其实像一般大点的卖场 很热心的跟你去介绍的人 肯定不是为了帮你介绍一款好点的东西。... ...

DotNet持续集成环境构建及配置之安装篇

DotNet持续集成环境构建及配置之安装篇

DotNet持续集成环境构建及配置之安装篇 准备工作: 安装Windows Server 2003及最新补丁... ...

我们用一个实例CISample来说明怎么配置CC.Net、VSS等。

我们用一个实例CISample来说明怎么配置CC.Net、VSS等。

我们用一个实例CISample来说明如何配置CC.Net、VSS等。 持续集成服务器源代码管理器配置: 从程序里... ...

java 框架

java 框架

  A 代码生成器(开发利器);  B 阿里数据库连接池drui... ...

MINA学习笔记四——第三章Session

MINA学习笔记四——第三章Session

第四章 会话 会话是MINA的核心:每次一个客户端连接到服务器,一个新的会话将被创建,而且该会话在客户端连... ...

MINA学习笔记三——第三章 IoService

MINA学习笔记三——第三章 IoService

第三章 IoService        一个... ...

sql 语句使用

sql 语句使用

1. 有一张表t_stu;其中三个字段:name,gender,grade;要求用一条sql语句查出男生前5名和女生前五... ...

oracle安装及体系结构

oracle安装及体系结构

1. 安装 数据库名:sid (系统标识符) + 后缀 10G过后,安装过程中要求修改SYS(默认manag... ...

Struts2系列之一:构建struts2项目

Struts2系列之一:构建struts2项目

Struts2系列之二:页面传值 Struts2系列之三:注解式Action 1. 新建一个Mave... ...

Page_Load()

Page_Load()

Page_Load,即页面载入要执行的事件; Page_Load的执行分为两种情况; 1.Page_Load事件的... ...

值类型与引用类型(Stuct---Class)

值类型与引用类型(Stuct---Class)

值类型有:Int Double Float Decimal Boolean Byte Char Single Enum ... ...

使用存储过程操作数据库(实现增删改查)

使用存储过程操作数据库(实现增删改查)

使用存储过程操作数据库    添加数据: --创建一个存储过程,向表中插入一条数据 crea... ...

使用二进制协议 (附源码)

使用二进制协议 (附源码)

使用二进制协议 (附源码) 在网络上,交互的双方基于TCP或UDP进行通信,通信协议的格式通常分为两类:文本消息... ...

soap消息拦截器SOAPHandler【handler-chain.xml】

soap消息拦截器SOAPHandler【handler-chain.xml】

SOAP handler is a SOAP message interceptor, which is able... ...

快码表类库DataDictionary

快码表类库DataDictionary

 代码没什么难度,主要是学习这种基础数据使用思想。   import java.uti... ...

C#实现RTP数据包传输参照RFC3550

C#实现RTP数据包传输参照RFC3550

C#实现RTP数据包传输参照RFC3550 闲暇时折腾IP网络视频监控系统,需要支持视频帧数据包在网络内的传输。... ...

Synchronizer--CyclicBarrier-关卡

Synchronizer--CyclicBarrier-关卡

package T; import java.io.IOException; import ja... ...

闭锁--CountDownLatch

闭锁--CountDownLatch

Player class: package T; import java.util.concurren... ...

最新IT资讯

必填

◎已有 0 人评论


电脑版

版权所有:IT人知识库 m.itpeo.net

返回顶部

本网站部分内容来自互联网,版权归原作者所有,文章内容仅代表原作者个人观点,如有侵权请联系我们删除