swift - Swift:水平设置 UICollectionView 的单元格左对齐
问题描述
我有一个collectionView,其中单元格具有动态宽度。问题是单元格在中心对齐,我希望它向左对齐,看图,我在我想要对齐的地方画了一条红线:
这是我的收藏视图配置:
var collectionView: UICollectionView = {
let layout: UICollectionViewFlowLayout = UICollectionViewFlowLayout()
layout.itemSize = CGSize(width: 100, height: 40)
layout.scrollDirection = .horizontal
layout.minimumLineSpacing = 0
let collectionView = UICollectionView(frame: CGRect.zero, collectionViewLayout: layout)
collectionView.setCollectionViewLayout(layout, animated: true)
collectionView.register(SportsCell.self, forCellWithReuseIdentifier: "MyCell")
collectionView.translatesAutoresizingMaskIntoConstraints = false
collectionView.backgroundColor = .white
collectionView.showsHorizontalScrollIndicator = false
return collectionView
}()
然后使大小动态的方法:
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
let text = items[indexPath.row].message
let padding: CGFloat = 5
return CGSize(width: textWidth(text: text, font: .systemFont(ofSize: 22)) + padding, height: 40)
}
func textWidth(text: String, font: UIFont?) -> CGFloat {
let attributes = font != nil ? [NSAttributedString.Key.font: font!] : [:]
return text.size(withAttributes: attributes).width
}
解决方案
推荐阅读
- sql-server - SQL Server 链接服务器在本地保持连接
- r - 选择标记 R 周围的行
- c - 如何使用 LWIP 和 FreeRTOS 让多播在 stm32f7 上工作
- php - 将 IBM Cloud php 应用程序连接到 IBM Cloud DB2
- javascript - JS querySelectorAll 用于特定祖父母的元素,除非其父母具有特定 ID
- python - 引号内的引号
- excel - 我的部分代码存在问题 - 用于构建表格
- mongodb - 仅当不为空时才插入字段
- excel - 在 VBA 中循环命名范围的更快方法
- javascript - 尝试使用 webpack ignorePlugin 从最终包中删除“react-hot-loader”