gpt4 book ai didi

ios - UIPageViewController/TextKit 计数页面数

转载 作者:行者123 更新时间:2023-11-29 01:11:37 25 4
gpt4 key购买 nike

如果我有一个很长的 NSTextStorage 并且我知道 NSTextContainer 的 CGSize,我如何计算文本的页数?这个东西有没有标准的程序或某种动态计算的方法?我找不到好的教程来使用自定义字体从原始文本制作类似 iBooks 的书(我需要绘制 20-50 页的文本)。

最佳答案

我找到了一种使用 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 返回 scrollView 中当前 textView 的 CGRect

关于ios - UIPageViewController/TextKit 计数页面数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35687802/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com