的定义,定义多了NSTextContainer对象则会将文本进行分页。 示例代码如下: //定义Container NSTextContainer * container = [[NSTextContainer alloc]initWithSize:CGSizeMake 四、了解NSTextContainer类 NSTextContainer可以简单理解为创建一个文本区块,文本内容将在这个区块中进行渲染,其中常用属性与方法如下: //初始化方法 设置区块的尺寸 NSLayoutManager与NSTextContainer的关系为一对多,放入NSLayoutManager中的NSTextContainer会以有序数组的形式进行管理,在内容布局时,超出第一个NSTextContainer 的内容会被布局到后一个NSTextContainer中。
二.Text Kit中重要的一些对象 image.jpg 图中主要表现NSTextContainer, NSLayoutManager, NSTextStorage之间的关系。 Text containers对应着NSTextContainer类。NSTextContainer定义了文本可以排版的区域。 一般来说,都是矩形区域,当然,也可以根据需求,通过子类化NSTextContainer来创建别的一些形状,例如圆形、不规则的形状等。 NSTextContainer不仅可以创建文本可以填充的区域,它还维护着一个数组——该数组定义了一个区域,排版的时候文字不会填充该区域,因此,我们可以在排版文字的时候,填充非文本元素。 其实总结下来就是,一个文字需要先创建一个容器对象(NSTextContainer),然后还需要创建一个文字的存储对象(NSTextStorage)。
②、创建有占位视图的UITextView,主要涉及NSTextStorage、NSLayoutManager、NSTextContainer、UIBezierPath几个类,主要代码如下: NSString layoutManager = [[NSLayoutManager alloc] init]; [textStorage addLayoutManager:layoutManager]; //文本容器 NSTextContainer *textContainer = [[NSTextContainer alloc] initWithSize:CGSizeMake(self.view.frame.size.width - 16, 48
13 } 14 let secondRect = CGRect(x:165, y:40, width:135, height:200) 15 let secondTextContainer = NSTextContainer secondTextView) 20 let thirdRect = CGRect(x:20, y:250, width:280, height:300) 21 let thirdTextContainer = NSTextContainer
4、NSTextContainer NSTextContainer描述了文本在屏幕上显示时的几何区域,每个text container与一个具体的UITextView相关联。 如果你需要定义一个很复杂形状的区域来显示文本,你可能需要创建NSTextContainer子类。 每个文本视图定义了一个文本可以绘制的区域。
以下三个属性text kit的常用属性: //text kit工具 NSTextContainer *_textContainer; NSLayoutManager *_layoutManager