我有一个UITextView包裹在UIView内,可以调整大小(增加框架和字体大小),并且放大镜在较小的文本视图大小下运作良好。
但是,如果我将文本视图大小增加很多,放大镜就会超出其框架。
我能否只删除放大镜而不影响光标选择,或者减小放大镜内的比例值使内容适合其框架?
但是,如果我将文本视图大小增加很多,放大镜就会超出其框架。
我能否只删除放大镜而不影响光标选择,或者减小放大镜内的比例值使内容适合其框架?
好的,成功禁用放大镜功能而不影响移动光标的能力。
为此,我删除了UILongPressGestureRecognizer以消除放大镜。然后使用了自己的UIPanGestureRecognizer来跟踪用户触摸位置。
CGPoint currentPos = [panRecognizer locationInView:self];
然后设置光标位置。
UITextPosition *cursorPosition=[self closestPositionToPoint:CGPointMake(currentPos.x, currentPos.y)];
[self setSelectedTextRange:[self textRangeFromPosition:cursorPosition toPosition:cursorPosition]];
要禁用放大镜,只需将userInteractionEnabled
属性设置为NO
。之后,当UITextField被点击时,您必须手动调用becomeFirstResponder
。您可以使用TapGestureRecognizer
来实现这一点。