0
如果我有很长的NSTextStorage并且我知道NSTextContainer的CGSize,我该如何计算文本的页数? 这个东西是否有标准的程序或动态计数的方法? 我找不到一个很好的教程,使用自定义字体(我需要绘制20-50页的文本)从原始文本制作iBooks书籍。UIPageViewController/TextKit计数页数
如果我有很长的NSTextStorage并且我知道NSTextContainer的CGSize,我该如何计算文本的页数? 这个东西是否有标准的程序或动态计数的方法? 我找不到一个很好的教程,使用自定义字体(我需要绘制20-50页的文本)从原始文本制作iBooks书籍。UIPageViewController/TextKit计数页数
我发现了一个很好的方法来使用TextKit的NSLayoutManager对多个页面进行计数。算了算页面,当我创建NSTextContainers
var range = NSMakeRange(0, 0)
var containerIndex : UInt = 0
var pageIndex : UInt = 1
while(NSMaxRange(range) < layoutManager.numberOfGlyphs) {
let textViewRect = self.frameForViewAtIndex(containerIndex)
let containerSize = CGSizeMake(textViewRect.size.width, textViewRect.size.height - 16)
let textContainer = NSTextContainer(size: containerSize)
layoutManager.addTextContainer(textContainer)
let textView = UITextView(frame: textViewRect, textContainer: textContainer)
self.addSubview(textView)
range = (layoutManager.glyphRangeForTextContainer(textContainer))
containerIndex++;
if containerIndex%columnCount == 0 { pageIndex++ }
}
是信息columnCount列数,如果你会使用多列布局
frameForViewAtIndex返回的CGRect当前的TextView内滚动视图