滚动视图上不需要的子视图反弹

时间:2014-09-26 04:10:19

标签: ios objective-c uiscrollview subview

我有一个滚动视图,作为横幅,15个图像视图作为子视图(水平滚动)。我以这种方式添加子视图:

for (int i = 0; i < featuredImages.count; i++) {

    CGRect frame;
    frame.origin.x = self.scrollViewFeaturedImages.frame.size.width * i;
    frame.origin.y = 0;
    frame.size = self.scrollViewFeaturedImages.frame.size;

    UIImageView *subview = [[UIImageView alloc] init];
    subview.frame = frame;
    [self.scrollViewFeaturedImages addSubview:subview];
}

并相应地设置contentSize:

self.scrollViewFeaturedImages.contentSize = CGSizeMake(self.scrollViewFeaturedImages.frame.size.width * featuredImages.count, self.scrollViewFeaturedImages.frame.size.height);

self.scrollViewFeaturedImages.contentInset = UIEdgeInsetsZero;

然而,当视图出现时,第一张图像似乎有些偏差。

space between image frame and scroll frame

当我(水平)滚动到下一个图像时,间隙消失,当我向后滚动到第一个图像时,帧已经被校正。

我也禁用了BOUNCE,但我可以垂直拖动图像。

enter image description here

我也试过这个:

self.automaticallyAdjustsScrollViewInsets = NO;

没有成功。

发生了什么?

2 个答案:

答案 0 :(得分:1)

在困惑了两个星期后,我终于通过在viewDidAppear添加这些行来解决这个问题。

self.scrollViewFeaturedImages.contentInset = UIEdgeInsetsZero;
self.scrollViewFeaturedImages.scrollIndicatorInsets = UIEdgeInsetsZero;

答案 1 :(得分:0)

您是否尝试将UIImageView的属性contentMode更改为UIViewContentModeScaleToFill