gpt4 book ai didi

swift - 为什么 ImageView 有时不会出现在 Collection View 单元格中?

转载 作者:可可西里 更新时间:2023-11-01 00:36:16 25 4
gpt4 key购买 nike

我刚刚更新到 Swift 3。

我的收藏 View 在更新之前运行良好。我做了建议的更改以使编译器满意,但现在我遇到了这个问题。

我的自定义 UICollectionViewCells 中的 ImageView 不再显示了。以编程方式生成的 ImageView 和原型(prototype) ImageView 都没有出现。

我已经为 ImageView 提供了背景颜色,以检查我的图像是否为零。背景颜色没有出现,因此可以安全地假设 ImageView 根本没有出现。

细胞本身正在出现。每个 ImageView 下方都有一个标签,并且该标签使用正确的文本正确显示。

最令人困惑的部分是有时 ImageView 确实会出现,但似乎没有关于为什么或何时出现的韵律或原因。

我的代码很标准,但我还是会继续分享它:

func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
return searchClubs.count
}

func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {

let cell: HomeCollectionViewCell = collectionView.dequeueReusableCell(withReuseIdentifier: "cell", for: indexPath) as! HomeCollectionViewCell

cell.barLabel.text = searchClubs[indexPath.row].name
cell.imageCell.image = searchClubs[indexPath.row].image

cell.imageCell.layer.masksToBounds = true
cell.imageCell.layer.cornerRadius = cell.imageCell.frame.height / 2

return cell

}

func feedSearchClubs(child: AnyObject) {

let name = child.value(forKey: "Name") as! String

//Image
let base64EncodedString = child.value(forKey: "Image")!
let imageData = NSData(base64Encoded: base64EncodedString as! String, options: NSData.Base64DecodingOptions.ignoreUnknownCharacters)
let image = UIImage(data:imageData! as Data)

//Populate clubs array
let club = Club.init(name: name, image: image!)
self.searchClubs.append(club)

DispatchQueue.main.async {
self.collectionView.reloadData()
}
}

最佳答案

从 Xcode 8 开始,您必须调用 layoutIfNeeded() 来根据自动布局规则计算大小(在您的情况下您需要知道 cell.imageCell.frame.height)和位置,或者使用固定的 cornerRadius 值。

cell.imageCell.layoutIfNeeded()
cell.imageCell.layer.masksToBounds = true
cell.imageCell.layer.cornerRadius = cell.imageCell.frame.height / 2

cell.imageCell.layer.masksToBounds = true
cell.imageCell.layer.cornerRadius = 5

关于swift - 为什么 ImageView 有时不会出现在 Collection View 单元格中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39497263/

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