美文网首页
iOS---获取光标位置caretRectForPosition

iOS---获取光标位置caretRectForPosition

作者: 惊蛰_e3ce | 来源:发表于2018-03-30 16:07 被阅读0次

    1:获取光标位置 目的:textview添加的placeholder和光标居中对齐

    CGRect guangBiaoRect = [_wordTV caretRectForPosition:_wordTV.selectedTextRange.start];
        [_wordTV addSubview:_placeHolderL];
        _placeHolderL.sd_layout
        .leftEqualToView(_wordTV).offset(guangBiaoRect.origin.x)
        .topEqualToView(_wordTV).offset(guangBiaoRect.origin.y)
        .autoHeightRatio(0);
    

    2:部分可点击 textview实现部分文本可交互点击
    -(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
    {
    // 获取触摸对象
    UITouch *touch = [touches anyObject];

    // 触摸点
    CGPoint point = [touch locationInView:self];
    // 通过一个触摸点,查询点击的是不是在下划线对应的文字的frame
    

    // self.selectedRange=NSMakeRange(self.text.length-6, 6);
    NSArray *selectionRectArray=[self selectionRectsForRange:self.selectedTextRange];

    for (UITextSelectionRect *serRect in selectionRectArray) {
        CGRect strRect=serRect.rect;
        if (CGRectContainsPoint(strRect, point)) {
            if (self.textClick) {
                self.textClick();
            }
            return;
        }
    }
    

    }
    3:textview文本全部展示masonry
    MyTextView *tv=[[MyTextView alloc]init];
    tv.font=[UIFont systemFontOfSize:kMainfontSize-4];
    tv.backgroundColor=_scrollView.backgroundColor;
    _xiYiStr = @"点击“注册”即表示您已经同意协议 《协议》";
    tv.editable=NO;
    tv.scrollEnabled=NO;
    tv.selectable = NO;
    tv.layoutManager.allowsNonContiguousLayout = NO;
    tv.selectedRange=NSMakeRange(_xiYiStr.length-6, 6);
    tv.textClick = ^{
    FengLeiXieYiVC *vc=[[FengLeiXieYiVC alloc]init];
    [self.navigationController pushViewController:vc animated:YES];

    };
    [_scrollView addSubview:tv];
    [tv mas_makeConstraints:^(MASConstraintMaker *make) {
        make.width.mas_equalTo(loginBtn);
        make.centerX.mas_equalTo(loginBtn);
        make.top.mas_equalTo(loginBtn.mas_bottom).offset(18);
    }];

    相关文章

      网友评论

          本文标题:iOS---获取光标位置caretRectForPosition

          本文链接:https://www.haomeiwen.com/subject/ftlicftx.html