UIScrollView无法显示滚动条/指示器。

5

我通过编程创建了一个UIScrollView,但是我看不到滚动条/指示器。

UIScrollView * contentScrollView = [[UIScrollView alloc]initWithFrame:CGRectMake(760, 70, 205, 320)];
contentScrollView.delegate = self;
contentScrollView.scrollEnabled = YES;
contentScrollView.pagingEnabled = YES;
contentScrollView.userInteractionEnabled=YES;
contentScrollView.scrollsToTop = YES;
contentScrollView.showsVerticalScrollIndicator = NO;
contentScrollView.showsVerticalScrollIndicator = YES;
contentScrollView.alwaysBounceVertical = NO;
contentScrollView.alwaysBounceHorizontal = NO;
contentScrollView.bounces = NO;
contentScrollView.hidden = NO;
[contentScrollView flashScrollIndicators];
UILabel *titleLable = [[UILabel alloc] initWithFrame:CGRectMake(10, 10, 205, 40)];
UILabel *subtitleLable = [[UILabel alloc] initWithFrame:CGRectMake(10, 60, 205, 50)];
UITextView * mainContent = [[UITextView alloc]initWithFrame:CGRectMake(10, 110, 205, 230)];

[titleLable setText:@"...."];
[subtitleLable setText:@"SUbtitle"];
[mainContent setText:@"Descritpon"];
[contentScrollView addSubview:mainContent];
[contentScrollView addSubview:titleLable];
[contentScrollView addSubview:subtitleLable];

我将这段代码添加到一个视图中,这个视图再次附加到另一个更大的滚动视图中。有人知道为什么会这样吗?同时,为了简单起见,我将每个标签包含的文本缩短为单词,但实际程序中需要滚动的文本足够长。

谢谢。


2
如果contentSize属性设置正确,滚动条在滚动时应该可见。但我认为将一个滚动视图添加为另一个滚动视图的子视图不是一个好主意。 - Rok Jarc
为什么呢?我有一个主scrollView和一个子SubScrollView,我需要在我的iPad应用程序中使用它。还有其他方法可以实现这个吗? - CodeGeek123
同时,设置内容在我的情况下并不完全有效。 - CodeGeek123
你需要实现某种机制来决定哪些触摸事件应该传递给父级滚动视图,哪些应该传递给子级滚动视图。我并不是说这是不可能的... 你必须确保这种行为对用户是可理解的。至于设置内容大小,我真的看不出为什么在你的情况下这不起作用(如果它不比滚动视图的大小大,就不会有滚动)。 - Rok Jarc
谢谢您的解释。我已经写了一个更详细的问题,请参考http://stackoverflow.com/questions/10802454/uiscrollview-within-scrollview-scrollbars-not-showing - CodeGeek123
2个回答

2
为了使滚动视图进行滚动,滚动视图的内容尺寸必须大于其边界。请添加以下行并检查:
contentScrollView.contentSize=CGSizeMake(320, 250);

并且将contentScrollView.bounces设置为YES,并删除行contentScrollView.showsVerticalScrollIndicator=YES,因为您首先将该值设置为NO,然后设置为YES

这样就可以了。


4
您可能是想说他应该删除 contentScrollView.showsVerticalScrollIndicator=NO 吗?他希望看到那个指示器... - Rok Jarc
contentScrollView.showsVerticalScrollIndicator=NO的值被覆盖为YES,因此它不可能是无法看到滚动条的原因。 - Singh
@CodeGeek123 请移除这一行代码 [contentScrollView flashScrollIndicators]; 然后再检查。 - Singh

0
contentScrollView.showsHorizontalScrollIndicator = YES;
contentScrollView.showsVerticalScrollIndicator = YES;

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接