Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- lazy var flowLayout: UICollectionViewFlowLayout = {
- let layout = UICollectionViewFlowLayout()
- layout.scrollDirection = .horizontal // .vertical
- layout.minimumInteritemSpacing = 10
- return layout
- }()
- lazy var collectionView: UICollectionView = {
- let cv = UICollectionView(frame: .zero, collectionViewLayout: flowLayout)
- cv.backgroundColor = .white
- return cv
- }()
- func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
- let targetWidth = collectionView.bounds
- .inset(collectionView.contentInset)
- .inset(flowLayout.sectionInset)
- .width
- let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "cellId", for: indexPath) as! SampleCell
- cell.configure(data: randomTexts[indexPath.row])
- let size = cell.systemLayoutSizeFitting(
- .init(width: targetWidth, height: 0),
- withHorizontalFittingPriority: .required, verticalFittingPriority: .fittingSizeLevel)
- return size
- }
- override func systemLayoutSizeFitting( _ targetSize: CGSize, withHorizontalFittingPriority horizontalFittingPriority: UILayoutPriority,
- verticalFittingPriority: UILayoutPriority) -> CGSize {
- let contentSize = contentView.systemLayoutSizeFitting(
- targetSize,
- withHorizontalFittingPriority: horizontalFittingPriority,
- verticalFittingPriority: verticalFittingPriority)
- return contentSize.withWidth(targetSize.width)
- }
- extension CGRect {
- func inset(_ insets: UIEdgeInsets) -> CGRect {
- return self.inset(by: insets)
- }}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement