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

时间:2013-10-09 08:00:51

标签: uiscrollview ios7 indicator

我花了几天时间试图在iOS7(在iPad上)上看到工作的UIScrollView水平滚动指示器(没有AutoLayout)。但没有成功。

有没人修过这样的错误?

我的项目很简单,运行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上的高度滚动条图像等于零。 可以改变高度,但只能快速进行,因为在吸毒期间,身高再次变为零。

1 个答案:

答案 0 :(得分:1)

我被困在类似的东西上。我正在iTunes上做CS193P课程,并进行了scrollView练习 - Imaginarium。基本上它只是嵌入UIImageView的{​​{1}}。我遇到的问题是滚动指示器没有显示(UIScrollView关闭)

我在文档中查找了UIScrollView的头文件,Autolayout中有一个名为scrollView的属性:

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

scrollIndicatorInsets

接着说默认值为@property(nonatomic) UIEdgeInsets scrollIndicatorInsets !!所以我使用UIEdgeInsetsZero创建了UIEdgeInset(请参阅文档)。然后在UIEdgeInsetsMake中我将此viewDidLoad设置为我的scrollView的scrollIndicatorInsets,之后我滚动时出现了指示符。

希望这也适合你。