关于UITextView的一些问题

运行环境是,XCODE5.02,iOS7.0

这几天写的项目中有个分页的属性,问题一堆堆的,获得文本,然后分页,进行阅读,于是开始各种找相关内容

最初设想是UITextView的contentOffset改变来截图,结果未果

原因主要由2个

1.UITextView的contentOffset用来设定时,给予其值,但它实际未必会跑到指定的地方,所以,经常是比指定的值的一半都要少,设定一个很大的数也不行。。。不准确。

也试过将UITextView贴在ScrollView上,ScrollView的contentOffset设定的很准确,没有问题!

让我想起了一个关于UITextView的类目,不知道会不会好点。没试,改天遇到在试

- (id)styleString {

    return [[superstyleString] stringByAppendingString:@"; line-height: 1.8em"];

}

2.就是UITextView的截图问题,这个问题,困扰我也是很久,找了半天。起因是因为上面的方法有问题,转而去拆分文本,放入数组,一次次给,然后一次次截图,结果问题出来了,因为给的文本刚好是一个屏幕的,用UITextView的layer做为截图视图,就回发现,截图图片全都是只有不到一半有文字,想过过很多原因,比如给个足够大得contentSize,

更改截图尺寸都不行!

关于UITextView的一些问题

最后发现当我给的文本占UITextView的高的3倍高度时,所截图的文本会铺满。。。

另外在计算文本尺寸的时候用到的方法是

CGSize totalTextSize = [text boundingRectWithSize:size

                                              options:NSStringDrawingUsesLineFragmentOrigin

                                           attributes:dic

                                              context:nil].size;

这个传入的dic是文本的一些属性,具体可以参考http://shijue.me/show_text/521c396a8ddf876566000007

这里也遇到一个很奇怪的问题,,我是这样定义的一个dic

UIFont *helveticaBold =

    [UIFontfontWithName:@"HelveticaNeue-Bold"size:12.0f];

    NSDictionary *dic=[NSDictionarydictionaryWithObjectsAndKeys:helveticaBold,NSFontAttributeName,[UIColorblueColor],NSForegroundColorAttributeName,[UIColorblackColor],NSStrokeColorAttributeName, nil];

这样就能获得一个相对准确的高度,但是当我不给NSStrokeColorAttributeName属性时,问题出现了,返回的尺寸的高度一直都是比视图高度小那么一点点的高度,也就是一页就能完全装得下所有文字,可是前面已经设置过字体类型和大小了,以那个大小来说一页根本就装不了,难道不设定NSStrokeColorAttributeName这个属性,其他设定的无效?

暂且只能这么下定论了。

 

最后实在是折腾的不行了,跳出死结,使用了UILabel,用字数分页解决了所有问题,没有以上说的2种问题。

 

 

关于UITextView的一些问题

上一篇:[转载]C# 判断字符是否中文还是英文


下一篇:剑指Offer - 九度1508 - 把字符串转换成整数