我试图将一些带有水平滚动的图像放在tableview单元格中,所以我使用了集合视图,我将它放入单元格中,除了单元格高度外,一切都正常。我已经在故事板中选择了单元格高度自定义,并且还使用代码更改了单元格高度,但它仍然无法正常工作。我是新手,我无法找到问题所在,请帮助我,谢谢你们! 1.I want to change the cell height 2.Stroyboard
class HomePageTableViewController: UITableViewController {
var ImageArray = [String]()
override func viewDidLoad() {
super.viewDidLoad()
ImageArray = ["Calendar.png","Calendar.png","Calendar.png","Calendar.png","Calendar.png"]
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return ImageArray.count
}
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "BannerCell") as! BannerTableViewCell
return cell
}
override func viewWillAppear(_ animated: Bool) {
tableView.estimatedRowHeight = 100
tableView.rowHeight = UITableViewAutomaticDimension
}
}
extension HomePageTableViewController: UICollectionViewDelegate,
UICollectionViewDataSource {
func numberOfSections(in collectionView: UICollectionView) -> Int {
return 1
}
func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
return ImageArray.count
}
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath)
-> UICollectionViewCell {
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "BannerCollection", for: indexPath) as! BannerCollectionCollectionViewCell
cell.BannerImage.image = UIImage(named: ImageArray[indexPath.row])
return cell
}
}
答案 0 :(得分:1)
您可能需要设置collectionviewcell大小,如下所示:
extension HomePageTableViewController: UICollectionViewDelegateFlowLayout {
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
// Return the cell size
let cellSize = CGSize(width: collectionView.bounds.width, height: collectionView.bounds.width * (ratioToUse))
return cellSize
}
}
我已经完成了类似的工作,我使用了集合视图水平滚动,但我使用了每个单元格的全宽并计算了aspectratio。但是,您需要根据需要修改此值。
我必须在其他地方做一些技巧来调整集合视图的大小。
我会先尝试这个,如果你还有问题,请张贴一张图片。
更新#2:
如果您使用的是AutoLayout,则不需要这样做,但您可以使用以下方法自行设置高度:
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
<#code#>
}
更新#3:
我只是对此进行了一些测试。您应该在集合视图上设置一个高度约束,这应该使tableviewcell适当调整大小。你不应该需要&#34; heightForRowAt&#34;正如我上面提到的。 AutoLayout应该为您处理。
答案 1 :(得分:0)
尝试将UIImageView的内容模式更改为纵横比较。它可能会奏效。