셀 (제품)이 많고 가로 및 세로로 스크롤해야하는 UICollectionView가 구현해야하는 기능이 있습니다. 사용자가 가로로 스크롤 할 때 첫 번째 열 (범주)이 이동하면 안되며 사용자가 다른 셀 (제품)과 함께 위아래로 스크롤 할 때 스크롤해야한다는 제한이 있습니다. 가능하거나 다른 UI 컨트롤을 선택해야합니까? 나는 철저하게 그 취소를 말할 수는 없지만UICollectionView 뷰를 첫 번째 열이 이동하지 않는 위치에서 가로로 스크롤 할 수 있습니까?
답변
... 나는 물건을 조금 분해 권하고 싶습니다. 두 개의 컬렉션, 카테고리 및 제품이 있고 두 개의 UI 요소가 서로 다른 행동을하는 것처럼 들립니다. 두 개의 별도 UICollectionView 또는 UIStackView 및 UICollectionView를 사용하는 것을 고려하십시오.
구현하려는 UI에 대한 자세한 내용을 공유 할 수 있다면 더 많은 통찰력을 제공 할 수 있습니다. 지금은 두 개의보기 작업처럼
건배
추가 화면 – Sergio
가 표시됩니다. 네. 이 경우 @jlew에 의해 솔루션과 함께 UICollectionViewLayout의 하위 클래스를 만들 수 있습니다. –
왜 별도의보기로 만드는 소리?
class CategoryCollectionView: UIView {
private let categoryView = UIView()
private let collectionView = UICollectionView()
}
그렇다면 수직 CollectionView는 ViewController에서 일반적인 서브 뷰일 것입니다. 다음은 UI 계층의 ViewController -> CollectionView -> Cells -> { CategoryCollectionView, CategoryCollectionView, TitleLabel }
"Scheme"과 같은 것을 만들 것입니다. 간단하고 빠릅니다.
UICollectionView는 기본적으로이 기능을 지원하지 않습니다. 예를 들어 'layoutAttributesForElementsInRect', 'layoutAttributesForSupplementaryViewOfKind'및 나머지 UICollectionViewFlowLayout 유틸리티와 같이 UICollectionViewFlowLayout을 사용자 정의해야 할 수 있습니다. – DanielH
지금 당장은 적절한 대답을 드릴 시간이 없지만 UICollectionView에서는 가능합니다. 'UICollectionViewLayout'의 서브 클래스를 생성하고 "sections"을 행으로 사용하고 항목을 항목으로 사용할 수 있습니다. 'prepareLayout'에서 고정 된 항목의 사각형을 계산하여 그 위치에 고정시키고 나머지는 아래로 스크롤 할 수 있도록해야합니다. – jlew
다음은 예입니다. https://www.brightec.co.uk/ideas/uicollectionview-using-horizontal-and-vertical-scrolling-sticky-rows-and-columns – jlew