【发布时间】:2012-10-12 16:02:41
【问题描述】:
编辑:这个问题的症结在于滚动指示器在程序化滚动期间不显示,但我希望它们显示。我最初的问题(在下面提供)假设这与userInteractionEnabled 有关,但事实并非如此。提到主 UIScrollView 和从属 UIScrollView 也可能会分散我的核心问题(在编程滚动期间需要显示滚动指示器)。向那些根据我的误导性假设/信息回答或评论的人道歉。
可能的解决方案:我发现这样做的唯一方法是使用滚动指示器是 UIImageView 的实例这一事实,并使用其上的类别来破解 alpha。这个article 展示了这种方法。然后是使用标签和滚动视图委托方法在程序化滚动之前永久打开 alpha 并在滚动完成时永久关闭的情况。不过这感觉很hacky,所以欢迎任何进一步的建议!
此行以下的所有内容都是原始未经编辑的问题,用于为用户的答案和 cmets 提供上下文
将UIScrollView 对象中的userInteractionEnabled 设置为NO 似乎会在程序滚动时禁用滚动指示器。即使您有self.showsVerticalScrollIndicator = self.showsHorizontalScrollIndicator = YES;
有没有办法以编程方式滚动滚动视图但仍显示指示器?
(提供一些上下文:我有一个从属滚动视图,它通过连接滚动视图委托回调并将内容偏移量传递给从属滚动视图来模仿主滚动视图。但是,我不希望用户能够直接操作从属滚动视图,但我确实想要滚动指示器)。
【问题讨论】:
-
你为什么会有这种奇怪的设置? (如果很明显,请道歉!)
-
因为在我的应用程序中,我想要一个跟随主滚动视图的从滚动视图,但不能直接与之交互。我觉得奇怪的是,Apple 在这种情况下会自动禁用滚动指示器——仅仅因为用户不能与之交互并不意味着它不能以编程方式滚动。
-
截图/模型,好吗?我发现很难理解为什么会出现这种行为......:/
-
在滚动时调用 [scrollView flashScrollIndicators] 会发生什么?
-
嗨@Tim,我尝试了在程序化滚动期间调用
flashScrollIndicators的方法,但问题是滚动指示器可能在滚动完成动画之前很久就消失了。在滚动过程中连续调用flashScrollIndicators也不好,因为这会导致滚动指示器闪烁。
标签: ios cocoa-touch uiscrollview