UICollectionViewCell
을 갖고 싶습니다. 은을 인스턴스화하고 UICollectionView
에 추가합니다. 이 작업을 수행하려면 UICollectionViewCell
인스턴스의 .reuseIdentifier
속성을 설정해야합니다.UICollectionViewCell에서 .reuseIdentifier를 설정하십시오.
일반적으로 세포가 컬렉션 뷰에 등록하고, 콜렉션 뷰는 이러한 방법으로, .reuseIdentifier
이미 설정된와 셀의 인스턴스를 설명하는 클래스 또는 펜촉 : 나는 때문에,
- registerClass:forCellWithReuseIdentifier:
- registerNib:forCellWithReuseIdentifier:
그러나 콜렉션 뷰 외부에서이 셀을 구성하면 이러한 셀이 적용되지 않습니다.
셀을 직접 만들면 .reuseIdentifier
을 설정할 방법이 없습니다 (읽기 전용 속성이고 초기화하는 방법이 init...
이기 때문에).
.reuseIdentifier
이 설정되지 않은 경우 셀을 추가하면 UICollectionView
이 예외를 throw합니다. 이 동작은 재사용 식별자가 선택적 인 UITableView
과 다릅니다.
수집 뷰 셀의 재사용 식별자를 설정하기 쉬운 해결책은 그때 위를 통과 할 수
[NSBundle.mainBundle loadNibNamed:@"MyCellName" owner:self options:nil][0];
갖는 셀의 인스턴스를 생성하는 .xib
파일을 포함하고 Identifier
박스를 사용하는 -instantiated UICollectionViewCell
그리고 모든 것이 잘 동작합니다.
...하지만 그것은 매우 바보 같고 임의의 농구대를 뛰어 넘는 것처럼 보입니다. .xib
- 래퍼 우회를 거치지 않고 셀 인스턴스에이 속성을 설정하는 다른 방법이 있습니까?
업데이트 : 컬렉션 뷰는 항상 디큐 뷰가 아니라 코드에서 명시 적으로 만들어야합니다
코드의 생성 프로세스를 단순화하기 위해 애플의 설명서는이 말한다. 그것을 필요로하지 않기 때문에이 (즉, 외부 인스턴스화 세포가 잘 같은 긴
.xib
에서로드 된 경우 자신의 식별자가 예를 들어, 어떻게 든를 설정되어 작동), 사실은 사실이 아니다
..., 또한 특정 사용 사례에서 "내 코드의 작성 프로세스를 단순화하지"않습니다 (오히려 별도의 파일이 필요하고 콜렉션 뷰가 이러한 몇 가지 복잡한 일회용을 생성하도록 요구하는 것이 더 까다 롭습니다).
위의 내용은 질문에 대한 대답이 '아니오'라는 것을 의미하는 것으로 보입니다. 컬렉션보기에서 대기열에서 큐를 제외하는 것 외에는 사용 가능한 셀을 만드는 것이 의도적으로 어렵습니다.
볼 수 있습니다 아마도 도움이 될 것입니다. http://stackoverflow.com/ 질문/12729612/custom-uitableview-with-reuseidentifier-without-style/12730053 # 12730053. (그것은 테이블 뷰 셀을위한 것이지만 콜렉션 뷰 셀에서도 마찬가지라고 생각합니다.) –
감사합니다. 시도하는 것이 좋은 트릭입니다. 나는 또한'setValue : forKey'가'readonly' 비트 주위에서 작동하는지 궁금합니다. :) – mjh