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 并且还明确要求 UIImageView 在 cellForItemAtIndexPath[ 中以下列方式使用 Aspect Fill & Clip Subview 进行缩放=33=]方法:
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)
结果是拉伸的图像 (IMAGE A),但是当我单击(点击)图像时,它 "magically" 解析纵横比填充和剪辑子视图 (图像 B) 。我似乎无法理解为什么只有在点击后才会发生这种情况,而不是在第一次加载图像时发生。它们被异步获取到服务器,但缩放仅在点击图像后发生(也没有实现点击功能)。
注意:UICollectionView 是在故事板视图控制器中设置的,Collection View 和 Reusable Cell 都启用了 Aspect Fill 和 Clip Subviews。
IMAGE A(错误缩放 - 拉伸且未裁剪):
IMAGE B(点击后正确缩放):
我认为你应该使用:
imageView.contentMode = UIViewContentMode.ScaleAspectFill
imageView.clipsToBounds = true
而不是这个:
cell.contentMode = UIViewContentMode.ScaleAspectFill
cell.clipsToBounds = true
这样做很简单:
imageView.contentMode = UIViewContentMode.ScaleAspectFill;
imageView.layer.masksToBounds = YES;
[你的ImageView setContentMode:UIViewContentModeScaleAspectFill];
yourImageView.layer.masksToBounds = 是;
我有一个 UICollectionView,其单元格包含一个 UIImageView。我正在设置 UIImageView frame.size 以匹配单元格的 frame.size 并且还明确要求 UIImageView 在 cellForItemAtIndexPath[ 中以下列方式使用 Aspect Fill & Clip Subview 进行缩放=33=]方法:
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)
结果是拉伸的图像 (IMAGE A),但是当我单击(点击)图像时,它 "magically" 解析纵横比填充和剪辑子视图 (图像 B) 。我似乎无法理解为什么只有在点击后才会发生这种情况,而不是在第一次加载图像时发生。它们被异步获取到服务器,但缩放仅在点击图像后发生(也没有实现点击功能)。
注意:UICollectionView 是在故事板视图控制器中设置的,Collection View 和 Reusable Cell 都启用了 Aspect Fill 和 Clip Subviews。
IMAGE A(错误缩放 - 拉伸且未裁剪):
IMAGE B(点击后正确缩放):
我认为你应该使用:
imageView.contentMode = UIViewContentMode.ScaleAspectFill
imageView.clipsToBounds = true
而不是这个:
cell.contentMode = UIViewContentMode.ScaleAspectFill
cell.clipsToBounds = true
这样做很简单:
imageView.contentMode = UIViewContentMode.ScaleAspectFill;
imageView.layer.masksToBounds = YES;
[你的ImageView setContentMode:UIViewContentModeScaleAspectFill]; yourImageView.layer.masksToBounds = 是;