如何将imageView添加到collectionViewCell中的scrollView

Posted

技术标签:

【中文标题】如何将imageView添加到collectionViewCell中的scrollView【英文标题】:how to add an imageView to a scrollView in a collectionViewCell 【发布时间】:2018-06-15 01:48:23 【问题描述】:

我有一个显示图像的 collectionViewCell。我已经向该单元格和情节提要约束添加了一个滚动视图,以将滚动视图固定到超级视图的顶部、底部、前导、尾随。

然后,我在故事板中添加了一个 imageView 作为 scrollView 的子视图,并将类似的 4 个约束添加到 imageView 的超级视图,即 scrollView。

在这个阶段,故事板中有一个红色警告,因为scrollView需要对可滚动的高度和宽度进行约束。

这可以通过将 imageView 的宽度和高度设置为等于单元格的 containerView 来消除。即scrollView的superview。

当我运行时,图像显示正确。但是,当我通过捏合放大时,当我平移时,imageView 的顶部和底部会有一个尴尬的边距。

我认为这是因为 imageView 在高度上的大小比图像大,所以当我缩放时,图像上方和下方的区域也在 scrollView 的 contentSize 中。

imageView 设置为 aspectFit。

不确定解决此问题的最佳方法是什么。

编辑 1

这是两个屏幕截图。我已将 imageView 的背景视图设为粉红色以演示正在发生的事情。第一个图像是缩放前正确显示的图像。在第二张图像中,图像被缩放和平移。我想在放大时消除顶部的边框。

编辑 2,

我还尝试向 imageView 添加一个固定的宽度和高度约束,该约束在添加图像时得到更新。在这种情况下一切正常,除了 imageView 位于 scrollView 的左上角而不是居中。

【问题讨论】:

删除等高或等宽。可能保留其中一个并添加图像作为占位符以消除警告。跑起来看看你的想法 移除了等高限制并添加了一个占位符。当我放大时,上边距和下边距也有同样的问题。 你能提供一张图片和你想要的吗? 如果您的图像视图未正确居中,则应添加“垂直居中”、“水平居中”或两者兼有的约束。 您不能添加居中约束。如果您在缩放时这样做,则 imageView 会移位并且无法向后移动 【参考方案1】:

我不确定,但听起来您的滚动视图内容太含糊了。把 UIScrollView 想象成一个窗口。你可以在窗口中移动预期的东西。当您向窗口移动时,事物可能会变大或变小,当您从左向右移动时会平移。但是为了正确显示,窗口里面的东西需要有某种一致性,比如大小,这样窗口才能按预期缩放。

从软件设计的角度来看,您真的应该问问自己。如果你设置一个 UIImageView 等于父视图的高度和宽度,也就是滚动视图,然后那个父视图的高度和宽度等于那个父视图 UICollectionViewCell,那为什么还要首先设置 UIScrollView?

就个人而言,我会为图像视图设置约束出口并以编程方式更新高度和宽度,或者设置一个设置比率的约束,然后只更新高度或宽度约束。为约束设置一个默认值并从那里开始工作。

让我们了解最新情况。

【讨论】:

以上是关于如何将imageView添加到collectionViewCell中的scrollView的主要内容,如果未能解决你的问题,请参考以下文章

如何以编程方式将约束添加到 UITableViewCell 的默认 imageView 和 textLabel

如何将图像标题添加到 jQuery ImageViewer 插件中的活动项?

如何在确保 UIView 的内容在其框架内的同时将 UIview 添加到 imageView?

如何在 ios 4 中以编程方式将图像数组添加到 Imageview?

如何在 Android 中将子视图添加到 ImageView

如何使用java将相机拍摄的图像添加到Android中的imageviewer?我试过下面的代码