没有AutoLayout的UIScrollView显示iOS 6中的水平滚动指示器,但不显示iOS 7

问题描述:

我花了好几天试图在iOS7(iPad上)上看到工作的UIScrollView水平滚动指示器(没有AutoLayout)。但没有成功。没有AutoLayout的UIScrollView显示iOS 6中的水平滚动指示器,但不显示iOS 7

有没有人修复过这样的bug?

我的项目很简单,运行iOS5和iOS6没有麻烦。

我发现,这对滚动指示图像的iOS7高度始终为零:

UIImageView * scrollBar = [[scrollView subviews] lastObject]; 
if (scrollBar != nil) 
{ 
    PrintRect(@"FRAME", scrollBar.frame); 
    PrintRect(@"BOUNDS", scrollBar.bounds); 
} 

结果为iOS7:

FRAME x:0.000000 y:54.000000 w:338.000000 h:0.000000 
BOUNDS x:0.000000 y:0.000000 w:338.000000 h:0.000000 

但iOS6的:

FRAME x:0.000000 y:47.000000 w:338.000000 h:7.000000 
BOUNDS x:0.000000 y:0.000000 w:338.000000 h:7.000000 

所以iOS7上的高度滚动条图像等于零。 有可能改变身高,但只有很短的时间,因为在药物治疗过程中身高再次变成零。

+0

你能显示你的密码吗?什么是contentSize和UIScrollView的维度? – Raptor

我被困在类似的东西上。我正在做iTunes上的CS193P课程,并且有这个scrollView练习 - Imaginarium。基本上它只是嵌入在UIScrollView中的一个UIImageView。我有

我的文档中查找的头文件的UIScrollView同样的问题没有被显示滚动指标(与Autolayout关闭),有此属性的scrollViewscrollIndicatorInsets

的滚动指示器的距离与滚动视图边缘的距离。

@property(nonatomic) UIEdgeInsets scrollIndicatorInsets 

它继续说默认值是UIEdgeInsetsZero !!所以我使用UIEdgeInsetsMake创建了UIEdgeInset(请参阅文档)。然后在viewDidLoad我设置这个UIEdgeInsets是我的scrollView的scrollIndicatorInsets,之后我的指标出现在我滚动时。

希望这也适用于你。

+0

@ zero323 谢谢,但不幸的是,这样我就可以改变滚动指示器的水平位置,而不是高度。 – AntonS

+0

安东你应该感谢@Azzaknight。我的输入只是一些格式。 – zero323

+0

@Azzaknight谢谢,但这样我就可以改变iOS6应用程序的滚动指示器水平位置,但滚动指示器图像的高度仍然相同,在iOS7应用程序中等于零。 – AntonS