mirror of
https://github.com/metabolist/metatext.git
synced 2024-11-22 08:10:59 +00:00
53 lines
1.7 KiB
Swift
53 lines
1.7 KiB
Swift
// Copyright © 2021 Metabolist. All rights reserved.
|
|
|
|
import UIKit
|
|
|
|
final class AnnouncementReactionsCollectionView: UICollectionView {
|
|
|
|
init() {
|
|
super.init(frame: .zero, collectionViewLayout: Self.layout())
|
|
|
|
backgroundColor = .clear
|
|
isScrollEnabled = false
|
|
showsVerticalScrollIndicator = false
|
|
showsHorizontalScrollIndicator = false
|
|
}
|
|
|
|
@available(*, unavailable)
|
|
required init?(coder: NSCoder) {
|
|
fatalError("init(coder:) has not been implemented")
|
|
}
|
|
|
|
override func layoutSubviews() {
|
|
super.layoutSubviews()
|
|
|
|
if bounds.size != intrinsicContentSize {
|
|
invalidateIntrinsicContentSize()
|
|
}
|
|
}
|
|
|
|
override var intrinsicContentSize: CGSize {
|
|
CGSize(width: UIView.noIntrinsicMetric, height: max(contentSize.height, .minimumButtonDimension))
|
|
}
|
|
}
|
|
|
|
private extension AnnouncementReactionsCollectionView {
|
|
static func layout() -> UICollectionViewLayout {
|
|
let itemSize = NSCollectionLayoutSize(
|
|
widthDimension: .estimated(.minimumButtonDimension),
|
|
heightDimension: .estimated(.minimumButtonDimension))
|
|
let item = NSCollectionLayoutItem(layoutSize: itemSize)
|
|
let groupSize = NSCollectionLayoutSize(
|
|
widthDimension: .fractionalWidth(1),
|
|
heightDimension: .estimated(.minimumButtonDimension))
|
|
let group = NSCollectionLayoutGroup.horizontal(layoutSize: groupSize, subitems: [item])
|
|
|
|
group.interItemSpacing = .flexible(.defaultSpacing)
|
|
|
|
let section = NSCollectionLayoutSection(group: group)
|
|
|
|
section.interGroupSpacing = .defaultSpacing
|
|
|
|
return UICollectionViewCompositionalLayout(section: section)
|
|
}
|
|
}
|