我有UITextView
,右下角有UIButton
。我的UITextView
允许多行文字,即输入密钥时,textView高度会动态增加(类似于短信应用)。但我的问题是,在输入文字时,文字会落后于UIButton
。我希望文本在到达图像时停止并在下一行继续,文本没有任何中断。这可能吗?
答案 0 :(得分:1)
这个解决方案适合我。我有UItextview的子类,我把这个代码。
UIBezierPath* exclusionPath = [UIBezierPath bezierPathWithRect:_buttonClear.frame];
self.textContainer.exclusionPaths = @[exclusionPath];
答案 1 :(得分:0)
使用apple提供的Text Kit Framework。你可以实现这个
这是ray wenderlich tut https://www.raywenderlich.com/50151/text-kit-tutorial
具体来说,您需要为UITextView设置exclusionPaths
UIBezierPath* exclusionPath = [_timeView curvePathWithOrigin:myButton.center];
_textView.textContainer.exclusionPaths = @[exclusionPath];
答案 2 :(得分:0)
尝试以下代码:
UIBezierPath* exclusionPath = [UIBezierPath bezierPathWithRect:Button.frame];
self.textContainer.exclusionPaths = @[exclusionPath];
使用UITextView Delegate并执行类似的操作
- (void)textViewDidChange:(UITextView *)textView
{
//Get Buttons Y position and Allow TextView Frame changes until it is less than or equal buttons Y position
if (textView.frame.origin.y+textView.frame.size.height < Button.frame.origin.y) {
CGFloat fixedWidth = textView.frame.size.width;
CGSize newSize = [textView sizeThatFits:CGSizeMake(fixedWidth, MAXFLOAT)];
CGRect newFrame = textView.frame;
newFrame.size = CGSizeMake(fmaxf(newSize.width, fixedWidth), newSize.height);
textView.frame = newFrame;
}
}