我有一个UIScrollView,我使用...
动态创建和调整大小scrollView.contentSize = CGSizeMake(scrollView.frame.size.width , length);
然后我将subviews
添加到UIScrollView
。
我有scrollView.showsVerticalScrollIndicator = YES;
滚动时,滚动指示从不出现。
即使我打电话[scrollView flashScrollIndicators]
也没有任何事情发生。
想法?
答案 0 :(得分:66)
有同样的问题,找不到原因。最后一个答案给出了最后的提示:每当我添加新的子视图时,我首先从滚动视图中删除所有现有的子视图(显然也是滚动指示符)。
在我的循环中检查后,如果子视图真的是我想删除的类型,滚动指示器出现了:
for (NSObject * subview in [[[scrollView subviews] copy] autorelease]) {
if ([subview isKindOfClass:[MySubView class]]) {
[(MySubView*)subview removeFromSuperview];
}
}
更新:将代码更改为Nikolai的建议
答案 1 :(得分:14)
当我之前处理过这个问题时,在我的网格实现中,我偶尔会在滚动指示器的顶部找到一些单元格。为了解决这个问题,我现在在索引0处插入子视图而不是添加它们,这会将它们添加到顶部。所以尝试这样的事情:
[scrollview insertSubview:subview atIndex:0];
答案 2 :(得分:12)
对我来说,水平指示器在iOS 7的应用程序中神秘地消失了。后来发现由于一些奇怪的原因,我必须同时启用Shows Horizontal Indicator
和Shows Vertical Indicator
以使水平显示起来。如果我将其设置为不显示垂直指示符,则它也不会显示水平指示符。
答案 3 :(得分:8)
我通过在添加新子视图后添加此代码来解决此问题:
self.showsVerticalScrollIndicator = NO;
self.showsVerticalScrollIndicator = YES;
答案 4 :(得分:2)
如果scrollview的父级
滚动条位于ScrollView
/ TableView
的右侧,由于父界限( clipToBounds 隐藏它),此右侧不可见例如)。
我已经看过这个问题所以我会分享它,以防它可以提供帮助。
只需检查ScrollView
框架的宽度是否大于其父视图框架的宽度。
答案 5 :(得分:1)
如果contentSize太小而无法滚动表视图,也会发生(至少在UITableView的情况下)。如果您启用了弹跳,则tableview实际上不会滚动,因此不会显示指示符。尝试在内部添加更多内容。
答案 6 :(得分:1)
答案 7 :(得分:0)
当UIScrollView是一个48像素高的水平带,可以水平滚动时注意到这一点。也许Cocoa决定该区域对于滚动指示器来说太小了......