无法在Swift中滚动文本视图

bogh5gae  于 2022-10-31  发布在  Swift
关注(0)|答案(4)|浏览(213)

我有一个如下所示的TextView

我无法滚动文本视图,我已在UIViewController类中添加了UITextViewDelegate,并在textViewDidBeginEditing中设置了isUserInteractionEnabled属性

func textViewDidBeginEditing(_ textView: UITextView) {
    textView.backgroundColor = UIColor.lightGray
    textView.isEditable = false
    textView.isUserInteractionEnabled = true
    textView.isScrollEnabled = true
}

我需要做什么?
此外,在属性检查器中启用滚动

cclgggtu

cclgggtu1#

发生此问题的原因是实际UITextView's大小大于屏幕大小,如下所示

whlutmcx

whlutmcx2#

真实的的答案是,UITextView需要其内容框架高度低于其内容大小高度才能滚动。
在您的情况下,内容框架高度等于内容大小,因此它不会滚动。

gpnt7bae

gpnt7bae3#

您只需要为视图设置左前导、尾随、顶部空间和底部空间,但首先要确保文本视图小于实际视图(父视图)。

ql3eal8s

ql3eal8s4#

当您在UIView上有一个UITextView,而UIView是UIScrollView上的视图或直接在UIScrollview上时,情况就变得复杂了。
最好的办法,是在滚动时给予他们每个人自己的动作。
首先,确保设置了所有的代理,并确保UITextViews没有因为不需要而受到用户限制。
在我发布的一个应用程序中,我需要做的是👇

func scrollViewWillBeginDragging(_ scrollView: UIScrollView)
{
   if scrollView == textView1
   {
      // Do something if you actually want to, or just let textView1 scroll as intended
   }
   else if scrollView == textView2
   {
      // Do something if you actually want to, or just let textView2 scroll as intended
   }
   else if scrollView == zoomingScroll
   {
      // Do something if you need to or leave it
   }
   else
   {
      // Do something with all the other scrollable views if you need to
   }
}

相关问题