使用tvOS

时间:2017-08-15 15:18:03

标签: swift uiscrollview focus tvos tvos10

我坚持在我的tvOS应用程序中滚动UIScrollView内容。

我有scrollView,高度= 400,宽度= 400.在这个scrollview中,我有不可滚动的UITextView,高度= 800,宽度= 400.所以我想滚动这个文本。

但我的滚动视图没有滚动,我没有看到任何滚动指示器,而且我的scrollView也有isFocused value = false。我该如何解决这个问题?

P.S。更新我创建了单独的ViewController(下图)。 它有黑色ScrollView和白色视图,高度高,标签位于其中间。 ScrollView具有固定的宽度和高度,并且由于某种原因没有滚动!我甚至没有连接任何单独的类 - 只是从Interface builder。

创建它

enter image description here

4 个答案:

答案 0 :(得分:0)

我认为你可以使用

func gestureRecognizer (_ gestureRecognizer: UIGestureRecognizer, shouldReceive touch: UITouch) -> Bool 

判断视图并滚动它的方法

根据你触摸的视图做一些拦截

答案 1 :(得分:0)

有一些方法可以解决您的问题。

  1. 请检查故事板中的滚动视图,是否检查了滚动或垂直指示符?
  2. 如果你只想滚动textview内容,你可以使你的textview可滚动
  3. 您的约束存在问题,您需要将文本视图中的高度,垂直空间顶部,垂直空间底部添加到滚动视图。
  4. 希望这些建议可以帮助你

答案 2 :(得分:0)

所以你必须设置scrollview的内容大小大于scrollview边界,所以你应该将contentsize设置为(400,800),在你的xib中可能

答案 3 :(得分:0)

默认情况下,UIView不可聚焦(因此在tvOS中无法滚动)。您必须将其子类化以覆盖canBecomeFocused:

class myUIView: UIView {
    override var canBecomeFocused: Bool {
        return true
    }
}

然后在您的示例中,使用myUIView类代替UIView进行长白视图。设置正确的约束,您也无需在IB中的控制器视图边界之外设计视图。使用链接的要点检查this answer,以了解如何建立约束。