首页显示富文本用的是textView控件,因为需要用到textView的selectionRectsForRange,有时候一个超链接或话题检测出来换行了,这时候就是两个矩形,而selectionRectsForRange就具有这个功能可以检测出某段文本的矩形数组,首先算出此富文本中有多少个链接Link(话题,超链接,@)
@interface LSLink : NSObject
@property (nonatomic, assign) NSRange range;
@property (nonatomic, copy) NSString *text;
/**
*对应的矩形框数组
*/
@property (nonatomic, strong) NSArray *rects;
@end
遍历富文本,取出之前添加的属性键值,如果为真则是一个Link,则创建一个LInk对象,设置link的text,和range然后利用textVeiw的selectionRectsForRange计算出这个范围对应的矩形框,但是返回的矩形框有的宽高为0则不添加到link.reces数组中,然后利用一个数组存放所有的Link
links是存放所有link的数组
-(NSMutableArray *)links
{
if (!_links) {
_links=[NSMutableArray array];
//遍历富文本
[self.attributedText enumerateAttributesInRange:NSMakeRange(0, self.attributedText.length)