UITextView不在tvOS中滚动

Mad*_*adu 5 uitextview ios apple-tv swift tvos

我有一个UITextView在我的电视应用程序,当我尝试使其可聚焦,然后UI不是使其可聚焦,我无法滚动它.我读了一些关于它的问题,有些人说它是一个已知的问题,我们应该使用故事板.实际上我正在使用故事板但仍然无法使其工作.我还试图使它selectable,scrollEnabled并且userInteractionEnabled然后最后也尝试这行代码,但他们没有工作.

descriptionLbl.panGestureRecognizer.allowedTouchTypes = [NSNumber(integer: UITouchType.Direct.rawValue)]
Run Code Online (Sandbox Code Playgroud)

我也尝试打印boundsabd contentSize,UITextView这里是日志

Content Size (740.0, 914.0)
Bounds (25.0, 0.0, 740.0, 561.0)
Run Code Online (Sandbox Code Playgroud)

这是我的代码可以帮助我一些身体

@IBOutlet weak var descriptionLbl: UITextView!
var currentModel : Model?


override func viewDidLoad() {
    super.viewDidLoad()

    descriptionLbl.selectable = true
    descriptionLbl.scrollEnabled = true
    descriptionLbl.userInteractionEnabled = true


    descriptionLbl.panGestureRecognizer.allowedTouchTypes = [NSNumber(integer: UITouchType.Direct.rawValue)]


    descriptionLbl.text = (currentModel?.description)! + (currentModel?.description)! + (currentModel?.description)!
    descriptionLbl?.contentInset = UIEdgeInsets(top: 0.0, left: -25.0, bottom: 0.0, right: 0.0);


}
Run Code Online (Sandbox Code Playgroud)

我想我不应该做这么多技巧,但它不会以任何方式工作.重点实际上是,UITextView但它不会滚动.有任何想法吗?

Jes*_*ers 9

我相信你想要间接,而不是直接接触.以下是我如何设置可聚焦,可滚动的UITextView:

self.selectable = YES;
self.userInteractionEnabled = YES;
self.panGestureRecognizer.allowedTouchTypes = @[@(UITouchTypeIndirect)];
Run Code Online (Sandbox Code Playgroud)


Abb*_*uti 6

在Swift 2.1中,这对我有用:

myTextView.userInteractionEnabled = true
myTextView.selectable = true
myTextView.scrollEnabled = true
myTextView.panGestureRecognizer.allowedTouchTypes = [UITouchType.Indirect.rawValue]
Run Code Online (Sandbox Code Playgroud)

希望能帮助到你.


Rad*_*dos 6

对于 Swift 5,这对我有用:

    textView.isUserInteractionEnabled = true;
    textView.isScrollEnabled = true;
    textView.showsVerticalScrollIndicator = true;
    textView.bounces = true;
    textView.panGestureRecognizer.allowedTouchTypes = [NSNumber(value: UITouch.TouchType.indirect.rawValue)]
Run Code Online (Sandbox Code Playgroud)


Jos*_*ice 5

根据之前的答案,这是在 Swift 3.0.1 中对我有用的内容:

  • 我不得不子类化UITextView以覆盖canBecomeFocused返回true
  • 我必须设置 panGestureRecognizer.allowedTouchTypes = [NSNumber(value: UITouchType.indirect.rawValue)]
  • 我必须isUserInteractionEnabled = true在代码中进行设置- 在 Interface Builder 中进行设置似乎还不够
  • 我必须在界面构建器中检查“启用滚动”(isScrollEnabled = true代码中的设置也可以

我发现的其他一些细节:

  • bounces = true 使滚动感觉更自然(必须在代码中设置;不尊重 IB 设置)
  • showsVerticalScrollIndicator = true必须在代码中设置;IB 设置不受尊重
  • 覆盖didUpdateFocus(in:with:)以更改背景颜色以直观地指示焦点。