1

我花了几天时间试图在 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上的高度滚动条图像等于零。可以改变高度,但只能快速改变,因为在用药期间高度再次变为零。

4

1 回答 1

1

我被困在类似的事情上。我正在 iTunes 上学习 CS193P 课程,并且有这个scrollView练习 - Imaginarium。基本上它只是UIImageView嵌入在一个UIScrollView. 我遇到了同样的问题,滚动指示器没有显示(Autolayout关闭)

我在文档中查找了 UIScrollView 的头文件,并且在scrollView调用中有这个属性scrollIndicatorInsets

滚动指示器从滚动视图边缘插入的距离。

@property(nonatomic) UIEdgeInsets scrollIndicatorInsets

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

希望这对你也有效。

于 2013-10-29T12:30:44.387 回答