2017-11-03 6 views
1

셀 (제품)이 많고 가로 및 세로로 스크롤해야하는 UICollectionView가 구현해야하는 기능이 있습니다. 사용자가 가로로 스크롤 할 때 첫 번째 열 (범주)이 이동하면 안되며 사용자가 다른 셀 (제품)과 함께 위아래로 스크롤 할 때 스크롤해야한다는 제한이 있습니다. 가능하거나 다른 UI 컨트롤을 선택해야합니까? 나는 철저하게 그 취소를 말할 수는 없지만UICollectionView 뷰를 첫 번째 열이 이동하지 않는 위치에서 가로로 스크롤 할 수 있습니까?

enter image description here

+2

UICollectionView는 기본적으로이 기능을 지원하지 않습니다. 예를 들어 'layoutAttributesForElementsInRect', 'layoutAttributesForSupplementaryViewOfKind'및 나머지 UICollectionViewFlowLayout 유틸리티와 같이 UICollectionViewFlowLayout을 사용자 정의해야 할 수 있습니다. – DanielH

+2

지금 당장은 적절한 대답을 드릴 시간이 없지만 UICollectionView에서는 가능합니다. 'UICollectionViewLayout'의 서브 클래스를 생성하고 "sections"을 행으로 사용하고 항목을 항목으로 사용할 수 있습니다. 'prepareLayout'에서 고정 된 항목의 사각형을 계산하여 그 위치에 고정시키고 나머지는 아래로 스크롤 할 수 있도록해야합니다. – jlew

+2

다음은 예입니다. https://www.brightec.co.uk/ideas/uicollectionview-using-horizontal-and-vertical-scrolling-sticky-rows-and-columns – jlew

답변

0

... 나는 물건을 조금 분해 권하고 싶습니다. 두 개의 컬렉션, 카테고리 및 제품이 있고 두 개의 UI 요소가 서로 다른 행동을하는 것처럼 들립니다. 두 개의 별도 UICollectionView 또는 UIStackView 및 UICollectionView를 사용하는 것을 고려하십시오.

구현하려는 UI에 대한 자세한 내용을 공유 할 수 있다면 더 많은 통찰력을 제공 할 수 있습니다. 지금은 두 개의보기 작업처럼

건배

+0

추가 화면 – Sergio

+0

가 표시됩니다. 네. 이 경우 @jlew에 의해 솔루션과 함께 UICollectionViewLayout의 하위 클래스를 만들 수 있습니다. –

0

왜 별도의보기로 만드는 소리?

class CategoryCollectionView: UIView { 
    private let categoryView = UIView() 
    private let collectionView = UICollectionView() 
} 

그렇다면 수직 CollectionView는 ViewController에서 일반적인 서브 뷰일 것입니다. 다음은 UI 계층의 ViewController -> CollectionView -> Cells -> { CategoryCollectionView, CategoryCollectionView, TitleLabel } "Scheme"과 같은 것을 만들 것입니다. 간단하고 빠릅니다.

+0

위의 실물 모형에 설명 된대로 "some text some text"로 보충 뷰를 구현하는 방법은 무엇입니까? 보시다시피 텍스트가 전체 컨트롤을 가로 질러갑니다 – Sergio

+0

@Sergio이 뷰에서 어떤 행동을 기대합니까? 어떤 크기 여야합니까? –

+0

사용자가 가로로 스크롤하면 "카테고리"열 및 "일부 텍스트"보기가 정적이어야합니다. 그러나 위/아래로 스크롤하면 모든 뷰를 스크롤 할 수 있습니다. – Sergio