2013-04-02 2 views
5

내비게이션 컨트롤러 내의 표 셀을 클릭하여 표시되는 UICollectionView가 있습니다. 따라서 UICollectionView는 탐색 컨트롤러의 스택에있는 두 번째 화면입니다.UICollectionViewCell의 하위 클래스가 표시되지 않습니다.

펜촉을 등록하고 UICollectionViewCell 클래스를 통해 셀을 만들면 콜렉션 뷰에 셀이 나타납니다. 그러나 일단 셀에 대한 하위 클래스를 만들려고하면 컬렉션보기가 검정색 화면으로 표시됩니다. 내 프로젝트는 여기에서 찾을 수 있습니다. Link to Project in Dropbox

가 UICollectionViewCell를 서브 클래 싱하기 위해, 나는 다음과 같은 한 : UICollectionViewCell의 서브 클래스의 .H와하는 .m 파일을 생성

  • . 펜촉 속성 관리자에서이 사용자 정의 클래스를 참조했습니다. 수집보기를 표시하는 뷰 컨트롤러의 viewDidLoad 내의 셀의 재사용 식별자가 정의 클래스 등록 enter image description here

  • .

    [self.collectionView registerClass:[CustomCollectionViewCell class] forCellWithReuseIdentifier:@"cvCell"]; 
    
  • 이있는 사용자 정의 셀의 인스턴스를 생성 "cellForItemAtIndexPath : collectionView"내가 읽은 바로는

    CustomCollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"cvCell" forIndexPath:indexPath]; 
    

, 즉 그것을해야! 하지만 콜렉션 뷰가 공백으로 표시되면 누구나 도움이 될 수 있을까요 ??

답변

6

코드를 검사했습니다. 너는 완벽하게 해냈다. 셀이있는 컬렉션 뷰가 올바르게 표시되지만 셀의 속성을 설정하지 않으므로 셀을 볼 수 없습니다. 당신은 당신이 펜촉 대신 클래스를 등록해야 펜촉에 모든 것을 수행하는 경우 그냥 cellForItem

cell.backgroundColor = [UIColor redColor]; 

에서 셀의 배경색을 설정하여 확인한다. registerClass 대신 registerNib을 사용하십시오. 클래스를 등록하는 경우 프로그래밍 방식으로 모든 작업을 수행해야합니다.

+1

고맙습니다! 나는 매우 놀랍지 만 펜촉의 내용은 UICollectionViewCell을 상속 한 후에 완전히 무시 된 것 같습니다. 배경이 이미 흰색으로 설정되었습니다 (Interface Builder에서). 또한 셀에 이미지를 넣고 (IB의 imageView 사용) 이미지가 나타나지 않습니다. 서브 클래 싱 된 UICollectionViewCell의 모든 내용을 프로그래밍 방식으로 추가해야합니까? 왜 그것은 펜촉에있는 것들을 무시합니까? –

+9

nib에서 모든 작업을 완료했다면 클래스 대신 nib를 등록해야합니다. 셀을 등록하려면 __registerClass__ 대신 __registerNib__을 사용하십시오. 수업을 등록하는 경우 프로그래밍 방식으로 모든 것을해야합니다. :) –

+0

네가 설명한대로 작동합니다. 나는 수업 대신 펜촉을 등록했고 펜촉이 나타났다. 여기에 도와 주셔서 감사합니다! –

관련 문제