UICollectionView在加载后调整图像大小

时间:2015-10-01 19:38:31

标签: ios objective-c uiimageview uicollectionview uicollectionviewcell

我正在创建一个包含Instagram的应用程序,该应用程序在UICollectionView中显示来自已定义用户的所有媒体。我使用SDWebImage来缓存图像(准确地说是UIImageView + WebCache)。问题是有时(我找不到某种模式)图像(主UIImageView使用SDWebImage加载其内容并占用整个UICollectionView和一点UIImageView它具有来自资产的已定义图标)滚动时调整大小,并且他们以两种方式执行:

  1. 从小到大
  2. 从大到小
  3. 此尺寸更改是通过动画完成的,并且是不受欢迎的。这个问题似乎与新的Xcode或iOS 9有关,因为它在iOS 8中运行得很好。

    一些观察结果:

    • 当向下滚动时,它会向右(有时)显示图像,但向上移动会使它们变小,但只要滚动停止,图像就会恢复正常

    告诉我您是否需要任何信息。谢谢!

1 个答案:

答案 0 :(得分:1)

编辑:这不起作用! 我一直在测试,它有时会工作,有时也不会。

好的......这是你长时间寻找答案的情况,一旦你问,你就找到了答案......

研究更多我发现这篇文章:UICollectionView cell subviews do not resize

显然,将以下代码添加到自定义var dragArray:Array = new Array; dragArray.push(blockSmalla); dragArray.push(blockSmallb); dragArray.push(blockSmallc); dragArray.push(blockSmalld); dragArray.push(blockSmalle); var startPosition:Point; function drag(e:Event):void { e.currentTarget.startDrag(); startPosition = new Point( e.currentTarget.x, e.currentTarget.y); } function dragStop(e:Event):void { e.currentTarget.stopDrag(); e.currentTarget.x = startPosition.x; e.currentTarget.y = startPosition.y; startPosition = null; } for (var i:uint = 0; i < dragArray.length; i++) { dragArray[i].addEventListener(MouseEvent.MOUSE_DOWN, drag); dragArray[i].addEventListener(MouseEvent.MOUSE_UP, dragStop); } 可以解决问题:

UICollectionViewCell

我希望它对某人有用。欢呼声。