From bc9a700383f9170ecf4ce8636413c5f531419c3c Mon Sep 17 00:00:00 2001 From: Shadowfacts Date: Sat, 9 Apr 2022 12:14:37 -0400 Subject: [PATCH] Improve expanded emoji picker layout on iPad --- .../EmojiPickerCollectionViewController.swift | 27 ++++++++++--------- 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/Tusker/Screens/Compose/EmojiPickerCollectionViewController.swift b/Tusker/Screens/Compose/EmojiPickerCollectionViewController.swift index 0757189f..216b9dfd 100644 --- a/Tusker/Screens/Compose/EmojiPickerCollectionViewController.swift +++ b/Tusker/Screens/Compose/EmojiPickerCollectionViewController.swift @@ -37,18 +37,21 @@ class EmojiPickerCollectionViewController: UICollectionViewController { init(mastodonController: MastodonController) { self.mastodonController = mastodonController - let itemWidth = NSCollectionLayoutDimension.fractionalWidth(1.0 / 10) - let itemSize = NSCollectionLayoutSize(widthDimension: itemWidth, heightDimension: itemWidth) - let item = NSCollectionLayoutItem(layoutSize: itemSize) - - let groupSize = NSCollectionLayoutSize(widthDimension: .fractionalWidth(1.0), heightDimension: itemWidth) - let group = NSCollectionLayoutGroup.horizontal(layoutSize: groupSize, subitems: [item]) - group.interItemSpacing = .fixed(4) - - let section = NSCollectionLayoutSection(group: group) - section.interGroupSpacing = 4 - - let layout = UICollectionViewCompositionalLayout(section: section) + let layout = UICollectionViewCompositionalLayout { sectionIndex, environment in + let hSizeClass = environment.traitCollection.horizontalSizeClass + + let itemWidth = NSCollectionLayoutDimension.fractionalWidth(1.0 / (hSizeClass == .compact ? 10 : 20)) + let itemSize = NSCollectionLayoutSize(widthDimension: itemWidth, heightDimension: itemWidth) + let item = NSCollectionLayoutItem(layoutSize: itemSize) + + let groupSize = NSCollectionLayoutSize(widthDimension: .fractionalWidth(1.0), heightDimension: itemWidth) + let group = NSCollectionLayoutGroup.horizontal(layoutSize: groupSize, subitems: [item]) + group.interItemSpacing = .fixed(4) + + let section = NSCollectionLayoutSection(group: group) + section.interGroupSpacing = 4 + return section + } super.init(collectionViewLayout: layout) }