在UITextview中获取Text的位置

时间:2014-07-18 11:13:20

标签: ios position uitextfield uitextview

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

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

我想从左边开始填写文本的位置/填充

5 个答案:

答案 0 :(得分:1)

我认为你可以使用textView的这个属性

<强> textContainerInset

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

答案 1 :(得分:1)

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

答案 2 :(得分:0)

如果Text位于UIImageView内部的UILabel内,则可以通过

获取标签的y位置
CGFloat yPosition = [self.myLabel.frame.origin.y];

如果没有,那么请使用Label并将其设置为故事板中UIView中的所需位置。 获取与Imageview相关的Text y位置。

希望这会有所帮助。

答案 3 :(得分:0)

试试这可能会有所帮助...

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”并看到它正在返回文本发布...

答案 4 :(得分:0)

好的,所以我这样做了,

UITextPosition *post = [_textview beginningOfDocument];


CGRect r = [_textview caretRectForPosition:post];