Post

Replies

Boosts

Views

Activity

Vertical scrolling (or visibleItemsInvalidationHandler) resets the inner offset of the orthogonal section with groupPagingCentered
I did UICollectionViewCompositionalLayout with orthogonal section with groupPagingCentered as follow: func neighborsRealitiesSection() -> NSCollectionLayoutSection { 	let itemSize = NSCollectionLayoutSize(widthDimension: .fractionalWidth(1), heightDimension: .fractionalHeight(1)) 	let item = NSCollectionLayoutItem(layoutSize: itemSize) 		 	let cellWidth = UIScreen.main.bounds.width / 3 + 1 	let groupSize = NSCollectionLayoutSize(widthDimension: .absolute(cellWidth), heightDimension: .absolute(cellWidth)) 	let group = NSCollectionLayoutGroup.vertical(layoutSize: groupSize, subitems: [item]) 		 	let section = NSCollectionLayoutSection(group: group) 	section.orthogonalScrollingBehavior = .groupPagingCentered 		 	section.visibleItemsInvalidationHandler = { items, offset, environment in 		items.filter { $0.representedElementKind != UICollectionView.elementKindSectionHeader }.forEach { item in 			let distanceFromCenter = abs((item.frame.midX - offset.x) - environment.container.contentSize.width / 2.0) 			let minScale: CGFloat = 0.7 			let maxScale: CGFloat = 1 			let scale = max(maxScale - (distanceFromCenter / environment.container.contentSize.width), minScale) 				 			item.transform = CGAffineTransform(scale: scale) 		} 	} } The other sections are scrolled vertically. When scrolling vertically, the orthogonal offset is reset to zero. If I comment on the visibleItemsInvalidationHandler, it will not be reset. Why does it happen? Does anybody have this problem?
0
0
678
Dec ’20
Adding contentInset to the orthogonalScrollingBehavior section causes the penultimate cell to skip
I did UICollectionViewCompositionalLayout with orthogonal section with groupPagingCentered as follow: func neighborsRealitiesSection() -> NSCollectionLayoutSection { 	let itemSize = NSCollectionLayoutSize(widthDimension: .fractionalWidth(1), heightDimension: .fractionalHeight(1)) 	let item = NSCollectionLayoutItem(layoutSize: itemSize) 		 	let cellWidth = UIScreen.main.bounds.width / 3 + 1 	let groupSize = NSCollectionLayoutSize(widthDimension: .absolute(cellWidth), heightDimension: .absolute(cellWidth)) 	let group = NSCollectionLayoutGroup.vertical(layoutSize: groupSize, subitems: [item]) 		 	let section = NSCollectionLayoutSection(group: group) 	section.orthogonalScrollingBehavior = .groupPaging 		 	let inset = (UIScreen.main.bounds.width - cellWidth) / 2 	section.contentInsets = .init(top: 0, leading: inset, bottom: 0, trailing: inset) 		 	return section } If I adding the contentInsets to the section, collectionView won't stop scrolling on the penultimate cell. It will scrolling to the next cell. If I comment on contentInsets, it will be ok. Why does it happen? Does anybody have this problem?
1
0
756
Dec ’20