【问题标题】:Unwanted bounce of subviews on scrollview滚动视图上不需要的子视图反弹
【发布时间】:2014-09-26 04:10:19
【问题描述】:

我有一个滚动视图,它充当带有 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;

但是,当视图出现时,第一张图像似乎有点偏离。

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

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

我也试过这个:

self.automaticallyAdjustsScrollViewInsets = NO;

没有成功。

发生了什么事?

【问题讨论】:

  • 如何以及在何处将图像设置为UIImageViews
  • @SuryakantSharma [子视图 setImageWithURL:[NSURL URLWithString:featured.background_url]]; (setImageWithURL 来自一个名为 SDWebImage 的库;延迟加载) subview.contentMode = UIViewContentModeScaleToFill;
  • 我可以假设,图片正在从 URL 正确加载吗?
  • 是的@SuryakantSharma。我已经多次使用这个库了。我认为问题在于滚动视图及其子视图,尽管我无法确定它是什么
  • 加载前后是否检查过图片大小?

标签: ios objective-c uiscrollview subview


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

    • 是的,我做到了。当视图出现时,整个 imageView 框架都关闭了。
    猜你喜欢
    • 1970-01-01
    • 2011-11-04
    • 1970-01-01
    • 1970-01-01
    • 2022-09-30
    • 2011-09-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多