我有一个显示图像的collectionViewCell。我已经向该单元格和故事板约束添加了一个scrollView,以将scrollView固定到superview的顶部,底部,前导,尾部。
然后我在storyboard中添加了一个imageView作为scrollView的子视图,并将类似的4个约束添加到了imageView的superview,即scrollView。
在此阶段,故事板中有一个红色警告,因为scrollView需要可滚动高度和宽度的约束。
通过将imageView的宽度和高度设置为等于单元格的containerView,可以使其静音。即scrollView的超级视图。
当我运行图像时,显示正确。然而,当我通过捏合放大时,当我平移时,在imageView的顶部和底部有一个尴尬的边缘。
我认为这是因为imageView的高度大于图像,因此当我缩放时,图像上方和下方的区域也位于scrollView的contentSize中。
imageView设置为aspectFit。
不确定解决此问题的最佳方法是什么。
编辑1
这是两个截屏。我已经将imageView的背景视图变为粉红色来演示正在发生的事情。第一张图像是缩放前正确显示的图像。在第二张图像中,图像被缩放和平移。我想在放大时消除顶部的边框。
编辑2,
我还尝试为imageView添加固定的宽度和高度约束,在添加图像时会更新。在这种情况下一切正常,除了imageView位于scrollView的左上角而不是居中。
答案 0 :(得分:0)
我确实不确定,但听起来你的滚动视图内容太模糊了。将UIScrollView想象成一个窗口。你可以在窗口中移动预期的东西。当你向窗户移动时,事物可以更大或更小,当你从左向右移动时,它会变平。但是为了正确显示,窗口内部的东西需要具有某种一致性,例如大小,以便窗口可以扩展到预期。
从软件设计的角度来看,你应该真的在问自己。如果你将UIImageView设置为等于superview的高度和宽度,即scrollview,然后superview的高度和宽度等于超级视图,UICollectionViewCell,那么为什么甚至有UIScrollView首先是什么?
就个人而言,我会为imageview设置约束出口并以编程方式更新高度和宽度,或者设置一个设置比率的约束,然后只更新高度或宽度约束。设置约束的默认值并从那里开始工作。
让我们了解最新动态。