1.设置行高
NSMutableAttributedString *attri = [[NSMutableAttributedString alloc] initWithString:text];
2.UItextView 根据字符range找到其坐标
UITextPosition *startPosition = [self.textViewpositionFromPosition:self.textView.beginningOfDocumentoffset:range.location];
UITextPosition *endPosition = [self.textViewpositionFromPosition:startPosition offset:range.length];
UITextRange *textRange = [self.textViewtextRangeFromPosition:startPosition toPosition:endPosition];
CGRect rect = [self.textViewfirstRectForRange:textRange];
NSLog(@"x=%f,y=%f,wigth=%f,height=%f",rect.origin.x,rect.origin.y,rect.size.width,rect.size.height);
UIView *vv = [[UIViewalloc]initWithFrame:rect];
vv.backgroundColor = [UIColorredColor];
[ self . textView addSubview :vv];
3.UItextView 根据字符range找到其坐标插入背景
for (UIView *view inself.textView.subviews)
{
if ([view isKindOfClass:NSClassFromString(@"_UITextContainerView")] || [view isKindOfClass:NSClassFromString(@"UIWebDocumentView")])
{
view.tag = UIDocumentViewTag;
break;
}
}NSRange range = NSMakeRange(40, 3);
UITextPosition *startPosition = [self.textViewpositionFromPosition:self.textView.beginningOfDocumentoffset:range.location];
UITextPosition *endPosition = [self.textViewpositionFromPosition:startPosition offset:range.length];
UITextRange *textRange = [self.textViewtextRangeFromPosition:startPosition toPosition:endPosition];
CGRect rect = [self.textViewfirstRectForRange:textRange];
NSLog(@"x=%f,y=%f,wigth=%f,height=%f",rect.origin.x,rect.origin.y,rect.size.width,rect.size.height);
UIView *vv = [[UIViewalloc]initWithFrame:rect];
vv.backgroundColor = [UIColorcolorWithRed:150.0/255.0green:200.0/255.0blue:1.0alpha:1.0];
vv.layer.cornerRadius = rect.size.height * 0.2;
-(void)setLine:(UITextView *)textview {
float curHeight = self.textView.frame.size.height;
float conHeight = self.textView.contentSize.height;
//删除线
[selfremoveaAllLine:self.textView];
float height;
if (conHeight >curHeight) {
height = conHeight;
}else {
height = curHeight;
}
float fontSize = 22.0;
for (float h = fontSize; h < height; h+=fontSize)
{
UIImageView *lineView = [[UIImageViewalloc] initWithFrame:CGRectMake(0, h+5,self.textView.frame.size.width,1)]; //线往下2个像素
lineView.image = [UIImageimageNamed:@"divider.png"];
[lineView setBackgroundColor: [UIColorclearColor]];
lineView.tag =kTextViewLineTag;
[self.textViewaddSubview:lineView];
[lineViewrelease];
}
}
-(void)removeaAllLine:(UITextView *)textview {
NSArray *array = [textViewsubviews];
if (array.count !=0) {
for (int i=0; i<array.count; i++) {
id obj=[array objectAtIndex:i];
if (((UIImageView *)obj).tag ==kTextViewLineTag) {
[(UIImageView *)objremoveFromSuperview];
}
}
}
}
5.图文混排
UIBezierPath *exclusionPath = [UIBezierPath bezierPathWithRect:CGRectInset(self.button.frame, -20, -20)];
self.textView.textContainer.exclusionPaths = @[exclusionPath];