UITextView的一些操作

1.设置行高

NSMutableAttributedString *attri = [[NSMutableAttributedString alloc] initWithString:text];

    NSMutableParagraphStyle *paraStyle = [[NSMutableParagraphStyle alloc] init];
//    paraStyle.lineHeightMultiple = 2.0f;
    paraStyle.minimumLineHeight = self.lineHeight;
    [attri addAttribute:NSParagraphStyleAttributeName value:paraStyle range:NSMakeRange(0, text.length)];
    [attri addAttribute:NSFontAttributeName value:self.font range:NSMakeRange(0, text.length)]; 

2.UItextView  根据字符range找到其坐标

NSRange  range = NSMakeRange(40, 1);

    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;

    [ self . textView insertSubview:vv belowSubview:[self.textViewviewWithTag:UIDocumentViewTag]];

4.根据text设置线条

-(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];

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值