IOS开发之——CoreText

本文深入探讨iOS平台下的CoreText框架,详细介绍NSAttributedString、NSMutableAttributedString等关键类的功能及用法,并阐述如何利用这些类实现富文本布局、检测链接等特性。
看一下iOS平台下CoreText的一些常用的类。 NSAttributedString CFAttributedString 一段有自己样式(统一不可变)的文字 NSMutableAttributedString CFMutableAttributedString 一段有多种样式的文字 CTFrame 1.CGPath - CGPathGetBoundingBox 得到占用的区
 

  看一下iOS平台下CoreText的一些常用的类。
 
  NSAttributedString CFAttributedString 一段有自己样式(统一不可变)的文字
 
  NSMutableAttributedString CFMutableAttributedString 一段有多种样式的文字
 
  CTFrame
 
  1.CGPath -> CGPathGetBoundingBox 得到占用的区域大小
 
  2.CTFrameGetLineOrigins 可以得到每行的起始位置
 
  3.还可以控制文字横排竖排等
 
  CTFramesetter
 
  1.CTFramesetterSuggestFrameSizeWithConstraints 确定文字所需区域大小或指定区域可以显示多少文字
 
  CTLine
 
  1.CTLineGetStringIndexForPosition 确定区域内点处文字范围
 
  NSTextCheckingResult 代表各种链接,时间地址电话网址自定义等。
 
  NSDataDector
 
  这是一个专门配合NSTextCheckingResult检测是否是特定链接的类。继承于NSRegularExpression类。
 
  enumerate 遍历
 
  match 匹配的数组
 
  numbersOfMatch 匹配的个数
 
  1.使用core text就是先有一个要显示的string,然后定义这个string每个部分的样式->attributedString -> 生成 CTFramesetter -> 得到CTFrame -> 绘制
 
  其中可以更详细的设置换行方式,对齐方式,绘制区域的大小等。
 
  2.绘制只是显示,点击事件呢?就需要一个判断了。
 
  CTFrame 包含了多个CTLine,并且可以得到各个line的其实位置与大小。判断点击处在不在某个line上。CTLine 又可以判断这个点(相对于ctline的坐标)处的文字范围。然后遍历这个string的所有NSTextCheckingResult,根据result的rang判断点击处在不在这个rang上,从而得到点击的链接与位置。处理。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值