gpt4 book ai didi

ios - UICollectionView 的框架未正确更新为 UITableViewCell subview

转载 作者:行者123 更新时间:2023-11-28 20:48:11 25 4
gpt4 key购买 nike

我将 UICollectionView 放入自定义 UITableView 中。 UICollectionView 框架设置为 contentView 边界,但它并没有完全接受它。

CellForRowAtIndexPath

if indexPath.row == 0 {
let cell = tableView.dequeueReusableCell(withIdentifier: "collectionViewCell") as! TravelTypeTableViewCell
cell.backgroundColor = .green
return cell
} else {
let cell = tableView.dequeueReusableCell(withIdentifier: "cell")!
cell.textLabel?.text = "adsf"
return cell
}

TableViewCell

override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
super.init(style: style, reuseIdentifier: reuseIdentifier)

let layout = UICollectionViewFlowLayout()
collectionView = UICollectionView(frame: self.contentView.bounds, collectionViewLayout: layout)
collectionView.delegate = self
collectionView.dataSource = self
collectionView.register(UICollectionViewCell.self, forCellWithReuseIdentifier: "CollectionViewCell")
collectionView.backgroundColor = .clear
self.addSubview(collectionView)

collectionView.leftAnchor.constraint(equalTo: self.contentView.leftAnchor, constant:0).isActive = true
collectionView.rightAnchor.constraint(equalTo: self.contentView.rightAnchor, constant:0).isActive = true
collectionView.topAnchor.constraint(equalTo: self.contentView.topAnchor, constant:0).isActive = true
collectionView.bottomAnchor.constraint(equalTo: self.contentView.bottomAnchor, constant:0).isActive = true
}

输出用户界面

enter image description here

最佳答案

如果您使用约束,则无需为 Collection View 提供框架。

override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
super.init(style: style, reuseIdentifier: reuseIdentifier)

let layout = UICollectionViewFlowLayout()
let collectionView = UICollectionView(frame: .zero, collectionViewLayout: layout) // no need to give frame as you are adding constraints
collectionView.delegate = self
collectionView.dataSource = self
collectionView.register(UICollectionViewCell.self, forCellWithReuseIdentifier: "CollectionViewCell")
collectionView.backgroundColor = .clear
self.contentView.addSubview(collectionView)


collectionView.leftAnchor.constraint(equalTo: self.contentView.leftAnchor, constant:0).isActive = true
collectionView.rightAnchor.constraint(equalTo: self.contentView.rightAnchor, constant:0).isActive = true
collectionView.topAnchor.constraint(equalTo: self.contentView.topAnchor, constant:0).isActive = true
collectionView.bottomAnchor.constraint(equalTo: self.contentView.bottomAnchor, constant:0).isActive = true

}

关于ios - UICollectionView 的框架未正确更新为 UITableViewCell subview ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59854176/

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