提问人:Fdo 提问时间:7/10/2015 更新时间:11/17/2023 访问量:19984
UIImage Scale Aspect Fill 和 Clip Subviews 在 UICollectionView 中不起作用
UIImage Scale Aspect Fill and Clip Subviews not working in UICollectionView
问:
我有一个 UICollectionView,其中包含一个包含单个 UIImageView 的单元格。我将UIImageView frame.size设置为与单元格的frame.size匹配,并在cellForItemAtIndexPath方法中按以下方式显式要求UIImageView使用Aspect Fill & Clip Subview进行缩放:
let cell:UICollectionViewCell = collectionView.dequeueReusableCellWithReuseIdentifier("Cell", forIndexPath: indexPath) as! UICollectionViewCell
...
var imageView = UIImageView(image: self.eventImages[indexPath.row])
imageView.frame.size = cell.frame.size
cell.contentMode = UIViewContentMode.ScaleAspectFill
cell.clipsToBounds = true
imageView.contentMode = UIViewContentMode.ScaleAspectFill
imageView.clipsToBounds = true
cell.addSubview(imageView)
结果是一个拉伸的图像(图像 A),但是当我单击(点击)图像时,它“神奇地”解析了纵横比填充和剪辑子视图(图像 B)。我似乎不明白为什么这种情况只发生在点击之后,而不是第一次加载图像时。它们以异步方式提取到服务器,但缩放仅在点击图像后发生(也没有实现点击功能)。
注意:UICollectionView 是在情节提要视图控制器中设置的,“集合视图”和“可重用单元格”都启用了“纵横比填充”和“剪辑子视图”。
图像 A(缩放错误 - 拉伸且未裁剪):
图像 B(点击后正确缩放):
答:
7赞
Lavvo
7/10/2015
#1
我认为你应该使用:
imageView.contentMode = UIViewContentMode.ScaleAspectFill
imageView.clipsToBounds = true
取而代之的是:
cell.contentMode = UIViewContentMode.ScaleAspectFill
cell.clipsToBounds = true
评论
0赞
Fdo
7/11/2015
不,两者都有,但也只是尝试注释单元格缩放并仅留下 imageView 缩放但没有奏效。在情节提要中,“集合视图”和“集合可重用单元格”都具有和 ...对可能在那里起作用的不同东西有什么建议吗?Aspect Fill
Clip Subviews
0赞
Sravan
9/6/2022
就我而言,当我设置了宽度和高度限制时,它起作用了。
29赞
Muhammad Sarim
8/31/2016
#2
很简单,只需这样做:
imageView.contentMode = UIViewContentMode.ScaleAspectFill;
imageView.layer.masksToBounds = YES;
评论
1赞
Adam G
3/27/2018
应该是 imageView.layer.masksToBounds = YES;
0赞
Muhammad Sarim
4/12/2018
你还看到了什么,我写了?
4赞
ruelluna
5/2/2018
斯威夫特 4 =imageView.layer.maskToBounds = true
0赞
Sravan
9/6/2022
就我而言,当我设置了宽度和高度限制时,它起作用了。
1赞
Reza.Ab
4/24/2018
#3
[您的图像视图 setContentMode:UIViewContentModeScaleAspectFill]; yourImageView.layer.masksToBounds = 是;
-1赞
Reşit Şahin
11/17/2023
#4
imageView.contentMode = UIView.ContentMode.scaleAspectFill imageView.layer.masksToBounds = 真
评论