background image

度低于图像总高度则文字长度都是缩短的。用

CTTypesetterSuggestLineBreak 函数动态的计

算每一行里的字数,因为每一行里面的中文字、标点符号、数字、字母都不一样所以可以显示
的字数肯定也是不同的,所以需要作这样的计算。这样循环直至文本结束,就可以知道有多
少行字了。再根据字体高度和行间距得出总的文本高度,如果文本高度大于图片总高度那么
显示区域的

Frame 高度就是文本的高度,反之亦然。

5.         绘制文本:

设置每一行绘制文本的区间:

[cpp]

CFRange lineRange = CFRangeMake(currentIndex, lineLength); 
建立文本行对象

 

CTLineRef line = CTTypesetterCreateLine(typeSetter, lineRange); 
CGFloat x = [self textOffsetForLine:line inRect:self.bounds]; 
// 设置一行的位置 
CGContextSetTextPosition(context, x, y); 
// 绘制一行文字 
    CTLineDraw(line, context); 

6.         其他功能:

在完成文本绘制功能后可以加入调整文字大小的功能,和图片的放大的功能。

文字大小可以通过直接设置字体大小后重新绘制文本来实现。

图片放大可以在视图上添加一个新的

UIImageView 来展示放大后的图片,并且加入动

画效