7

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

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

但是我的滚动视图没有滚动,我没有看到任何滚动指示器,而且我的滚动视图有 isFocused 值 = false。我怎么解决这个问题?

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

在此处输入图像描述

4

4 回答 4

2

UIView 默认情况下是不可聚焦的(因此在 tvOS 中它不能滚动)。您必须对其进行子类化以覆盖 canBecomeFocused:

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

然后在您的示例中,使用类 myUIView 而不是 UIView 作为您的长白色视图。设置正确的约束,您也不需要在 IB 中设计控制器视图边界之外的视图。使用链接的要点检查此答案,以了解如何构建约束。

于 2018-08-13T12:21:35.983 回答
0

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

  1. 请检查情节提要中的滚动视图,是否检查了滚动或垂直指示器?
  2. 如果您只想滚动 textview 内容,您可以使您的 textview 可滚动
  3. 您的约束存在问题,您需要将 textview 中的高度、垂直空间顶部、垂直空间底部明确添加到滚动视图。

希望这些建议可以帮助你

于 2017-08-21T11:36:14.377 回答
0

我认为你可以使用

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

判断视图并滚动它的方法

根据你触摸的视图做某事拦截

于 2017-08-21T03:38:44.530 回答
0

因此,您必须将滚动视图的内容大小设置为大于滚动视图边界,因此您应该将 contentsize 设置为 (400, 800),可能在您的 xib 中

于 2017-08-24T06:44:20.177 回答