编辑:这个问题的症结在于滚动指示器在程序化滚动期间不会显示,但我希望它们能够显示。我的原始问题(下面提供)假设这与userInteractionEnabled
有关,但事实并非如此。提及主和从UIScrollView也可能分散我的核心问题(需要在程序化滚动期间显示滚动指示符)。向那些根据我误导性的假设/信息回答或评论的人道歉。
可能的解决方案:我发现这样做的唯一方法是使用滚动指示符是UIImageView
的实例并在其上使用类别来破解alpha的事实。这个article显示了这种方法。然后是一个使用标签和滚动视图委托方法在程序滚动之前永久打开alpha的情况,并在滚动完成时永久关闭。虽然这感觉很糟糕,但欢迎任何进一步的建议!
此行以下的所有内容都是未经编辑的原始问题,可为用户的回答和评论提供背景信息
将userInteractionEnabled
对象中的UIScrollView
设置为NO
似乎会在编程滚动时禁用滚动指示符。即使您有self.showsVerticalScrollIndicator = self.showsHorizontalScrollIndicator = YES;
有没有办法以编程方式滚动滚动视图但仍显示指示符?
(提供一些上下文:我有一个slave scrollview,它通过挂钩scrollview委托回调并将内容偏移传递给slave scrollview来模仿主scrollview。但是,我不希望用户能够直接操纵从属滚动视图,但我确实需要滚动指示符。
答案 0 :(得分:0)
不要将userInteractionEnabled设置为false,而是尝试将UIScrollView的scrollEnabled属性设置为false。文件。说“当滚动被禁用时,滚动视图不接受触摸事件”,这意味着您仍然可以以编程方式滚动UIScrollView。希望这有帮助 - 没有测试出来让我知道。
答案 1 :(得分:0)
您可以尝试在滚动视图上放置一个透明的UIView(alpha == 0.0)(但作为视图层次结构中的兄弟,而不是子视图)。在透明视图上将touchesEnabled设置为YES,它将拦截前往滚动视图的触摸。