Ios 返回无限帧的第一个矩形
我正在尝试获取textview中添加到单元格中的最后一个字符的位置rect。 当我重新加载单元格时会发生什么,然后这个方法返回infinite rect。我不知道为什么会这样。请帮我改正一下。我的代码如下-Ios 返回无限帧的第一个矩形,ios,uitextview,Ios,Uitextview,我正在尝试获取textview中添加到单元格中的最后一个字符的位置rect。 当我重新加载单元格时会发生什么,然后这个方法返回infinite rect。我不知道为什么会这样。请帮我改正一下。我的代码如下- UITextPosition *Pos2 = [_txt_EventName positionFromPosition: _txt_EventName.endOfDocument offset: 0]; UITextPosition *Pos1 = [_txt_EventName p
UITextPosition *Pos2 = [_txt_EventName positionFromPosition: _txt_EventName.endOfDocument offset: 0];
UITextPosition *Pos1 = [_txt_EventName positionFromPosition: _txt_EventName.endOfDocument offset: -1];
UITextRange *range = [_txt_EventName textRangeFromPosition:Pos1 toPosition:Pos2];
CGRect rect=[_txt_EventName firstRectForRange:range];
CGPoint lastCharPoint=rect.origin;
我遇到了同样的问题(实际上是无意中发现了您的问题),通过在我的文本视图上调用
layoutifneed
解决了我的问题。
在此调用之后,将正确计算返回的矩形。我花了很多时间弄明白这一点
祝你好运,
Z.在Xamarin中,我用来重写LayoutSubViews方法并在base.LayoutSubViews()之后调用我的函数。一个无限矩形通常作为一种“错误”标记返回。因此,请确保范围实际有效。我检查了范围并始终有效。我在计算范围后添加了if([\u txt_EventName textInRange:range]==nil){NSLog(@“Invalid TextRange”);},但此代码一次都没有执行。这很有帮助!谢谢我现在也遇到同样的问题,但是
layoutIfNeeded
不起作用。