如何在ios中限制UITextView中的内容

Kar*_*gat 10 pagination split uitextview ios

我想在不同视图的TextViews中加载长文本.文本视图结束时,文本应分为页面.下一个textview必须从文本的继续开始.

我经历了很多答案.但是所有都指定了在输入数据时限制文本内容.我想在TextView中显示分页数据.并且不会有任何输入或编辑.因此,关于它的委托方法将不起作用.

我试着加载固定长度的文本.但是当段落的编号不同时,它是不正确的.

所以我想要找到的是,当文本到达textview的容量结束时获得通知,或者根据no lines/no.of字符获得textview的容量.有没有办法做到这一点?

更新

根据我的评论,我搜索了很多,并在NSTextStorage,NSTextLayoutManager和NSTextContainer达成

我发现这个链接有助于轻松实现分页

http://sketchytech.blogspot.co.uk/2013/11/paging-and-paginating-easy-way-with.html

在这个例子中,他们使用循环创建了4个对象.可以这么说,因为他们已经将字符串拆分为4个部分,并在滚动视图的4个uitextviews中显示.

我试图根据字符串的长度设置一个条件分割到textcontainers.我试图通过考虑主要字符串的总长度和textview中显示的文本来创建条件.

在此输入图像描述

但每个textview的文本长度与主字符串的总长度相同.那么我如何才能在textview的每个文本容器中显示长度文本?

小智 0

选项 2 在具有正确参数的 iOS 中确实有效。

NSAttributedString *attrStr = ... // your attributed string
CGFloat width = 300; // whatever your desired width is
CGRect rect = [attrStr boundingRectWithSize:CGSizeMake(width, 10000) options:NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeading context:nil];
Run Code Online (Sandbox Code Playgroud)

如果选项参数没有正确的值,您将得到错误的高度。

从这里得到这个答案