文本超出UITextView框边界

15

我有一个UITextView,其中包含一些文本。问题是文本在UITextView框的边界外滚动。(UITextView是不可编辑的。)

这是代码以及我尝试解决此问题的方法:

  - (void)viewDidLoad {

        textBG.contentInset = UIEdgeInsetsZero;

    //  textBG.layer.masksToBounds = NO;
        textBG.layer.cornerRadius = 10.0;
        textBG.layer.borderWidth = 0.0;
        [textBG setClipsToBounds:YES];

    [super viewDidLoad];
}

- (void)textViewDidBeginEditing:(UITextView*)textView
{

textBG.contentInset = UIEdgeInsetsZero;    
 [textBG setClipsToBounds:YES];   
}

- (void) shouldChangeTextInRange:(UITextView*)textView {

    textBG.contentInset = UIEdgeInsetsZero;    
    [textBG setClipsToBounds:YES];

}

感谢任何帮助

在此输入图片描述


“文本滚动超出边界”是什么意思? - EmptyStack
我添加了一个问题的截图。 - hanumanDev
4个回答

20

将此代码编写在textView的代理方法中,例如textViewDidBeginEditing

textBG.contentInset = UIEdgeInsetsZero;

在viewDidLoad方法中

[textBG setClipsToBounds:YES];

1
我之前也遇到了同样的问题,只需在 shouldChangeTextInRange 和 textViewDidBeginEditing 方法中添加 textBG.contentInset = UIEdgeInsetsZero; 即可。在我的情况下运行良好。 - Narayana Rao Routhu
然后将[textBG setClipsToBounds:YES];放入代码中,我认为它会正常工作。 - Narayana Rao Routhu
1
我尝试了你的答案,它解决了文本超出边界的问题。但是我的视图有一个阴影,在我使用 clipsToBounds = YES 时,阴影不会显示出来。有什么解决办法可以保留阴影吗?@Narayana - Gon
@Gon:你有找到解决方案吗? - Ing. Ron
1
在Swift 4中,对我很有效的是textBG.textView.contentInset = UIEdgeInsets.zero。 - Ravi

2
尝试按照以下方式更改您的TextView在XIB中:enter image description here

1
只需将这一行代码放入即可解决问题。
yourTextView.clipsToBounds = true

0

我曾经遇到过同样的问题,所以我追踪了源代码...这是因为在添加阴影时,你不小心干扰了它的masksToBounds属性。因此,在添加更多文本时,它就会溢出。我发现的简单解决方案是在添加阴影后写入这一行代码。

[self.myTextView setClipsToBounds:YES];

通常应该在viewDidLoad方法中,但请记得只在应用阴影之后编写此行。

感谢您阅读这篇文章。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接