繁体   English   中英

获取Text在UITextview中的位置

[英]get the position of Text in UITextview

我有一个带有CGRect(0,y,320,58)和居中对齐文本的UITextView,我想要文本在UITextView中的位置

 _________________________
|                         |
|     Hey how are you?    |
|_________________________|

我想从左边开始定位/填充文本

我认为您可以使用textView的此属性

textContainerInset

textView.textContainerInset = UIEdgeInsetsMake(TOP, LEFT, BOTTOM, RIGHT);

UITextView采用UITextInput协议。 该协议具有方法firstRectForRange:它将告诉您覆盖一系列字符的矩形。

如果文本位于UIImageView内的UILabel内,则可以通过以下方式获取标签的y位置

CGFloat yPosition = [self.myLabel.frame.origin.y];

如果不是,请使用Label并将其设置为故事板中UIView中的所需位置。 获得相对于Imageview的Text y位置。

希望这可以帮助。

尝试此操作可能会有所帮助...

UITextView *textStuff = [[UITextView alloc] init];
textStuff.frame = CGRectMake(2.0, 200.0, 200.0, 40.0);
textStuff.text = @"how are you today?";
textStuff.textColor = [UIColor blackColor];

UITextPosition *Pos2 = [textStuff positionFromPosition: textStuff.endOfDocument offset: nil];
UITextPosition *Pos1 = [textStuff positionFromPosition: textStuff.endOfDocument offset: -textStuff.text.length];

UITextRange *range = [textStuff textRangeFromPosition:Pos1 toPosition:Pos2];

CGRect result1 = [textStuff firstRectForRange:(UITextRange *)range ];

NSLog(@"%f, %f", result1.origin.x, result1.origin.y);

UIView *view1 = [[UIView alloc] initWithFrame:result1];
view1.backgroundColor = [UIColor colorWithRed:0.2f green:0.5f blue:0.2f alpha:0.4f];
[textStuff addSubview:view1];

[self.view addSubview:textStuff];

打印到“ CGRect result1”,然后看到它正在返回文本...

好的,所以我是这样做的,

UITextPosition *post = [_textview beginningOfDocument];


CGRect r = [_textview caretRectForPosition:post];

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM