gpt4 book ai didi

swift - 在 UICollectionViewCell 中保留图像长宽比

转载 作者:行者123 更新时间:2023-11-30 13:24:08 28 4
gpt4 key购买 nike

问题:在 UICollectionViewCell 中重新加载缓存的 UIImageView(在滚动 UICollectionViewController 之间切换期间)未保留正确的 contentMode。

我尝试在 UIImageView 上使用 .sizeToFit() 并在每次加载时重置 .contentMode = UIViewContentMode.ScaleAspectFit,但这没有帮助。

override func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> MyCollectionViewCell {

let cell = collectionView.dequeueReusableCellWithReuseIdentifier("myCell", forIndexPath: indexPath) as! MyCollectionViewCell

if ( indexPath.item < self.the_array?.count ){

if ( images_cache[self.the_array![indexPath.item].src!] != nil ){
// calling this here doesn't work
cell.myImage.contentMode = UIViewContentMode.ScaleAspectFit
// calling this here doesn't work either
cell.myImage.sizeToFit()
cell.myImage.image = images_cache[self.the_array![indexPath.item].src!]! as UIImage
}
else{
if let url = NSURL(string: "https:" + (self.the_array![indexPath.item].src)!), data = NSData(contentsOfURL: url) {
let the_image = UIImage( data: data )
cell.myImage.image = the_image
images_cache[self.the_array![indexPath.item].src!] = the_image!
}
}
}
return cell
}

最佳答案

解决方案:根据单元格的大小设置UIImage的.frame!

cell.myImage.frame = CGRect(x: 0, y: 0, width: cell.frame.width, height: cell.frame.height)

我将该行放在 .sizeToFit() 和/或 .contentMode 的位置,现在它可以正确保留图像。

关于swift - 在 UICollectionViewCell 中保留图像长宽比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37421554/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com