UICollectionView
으로 시작하기 만하면됩니다. IB를 사용하여 UIViewController
에 간단한 UICollectionView
을 생성했습니다. 페이징으로 가로로 스크롤합니다. 간단한 UICollectionViewCell
을 UICollectionView
안에 넣었습니다. 셀의 재사용 식별자를 설정했습니다.UICollectionViewCell을 초기화 할 때 viewWithTag는 nil을 반환합니다.
UICollectionViewCell
안에 태그가 100 인 UILabel
을 넣었습니다. viewDidLoad
에서
, 내가 전화 :
이[_collectionView registerClass:[UICollectionViewCell class] forCellWithReuseIdentifier:@"Thing"];
나중에 내가 그렇게 같은 셀을 초기화하려고 :
- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
{
UICollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"Thing" forIndexPath:indexPath];
cell.backgroundColor = [UIColor greenColor];
UILabel *nameLabel = (UILabel *)[cell viewWithTag:100];
nameLabel.text = @"Bogus";
return cell;
}
내가 응용 프로그램, 제대로보기로드를 실행하는 경우; 2 셀을 가로로 스크롤 할 수 있습니다. 나는 각 세포를 식별하는 못생긴 초록색을 본다.
그러나 viewWithTag
메서드는 nil
을 반환하므로 nameLabel 텍스트가 설정되지 않습니다.
왜?
또한 UICollectionViewCell
의 사용자 정의 하위 클래스를 정의하고이 클래스와 함께 registerClass를 호출 해 보았습니다. IB에서 셀 클래스를 사용자 정의 하위 클래스로 변경하고 하위 클래스의 UILabel
콘센트에 UILabel
을 바인딩합니다.
하지만 이것도 작동하지 않습니다. (어쨌든 IBOutlets
을 보유하기 위해 클래스를 정의하는 것이 필요하지 않으므로 어쨌든 사용자 정의 서브 클래스 방법을 사용하지 않는 것을 선호합니다.)
나는 여기서 명백한 것을 놓치고 있다고 생각합니다.
비슷한 문제가 여기에 설명 :
Trouble accessing Image from instance of UICollectionViewCell
UILabel은 어디에 생성합니까? – Odrakir
UILabel은 Interface Builder에서 구성됩니다. 나는 그것을 코드로 할당하려고하지 않는다. viewWithTag가 생성 된 인스턴스를 검색해야한다고 생각했습니다. 이것은 UITableView와 함께 작동하는 방법입니다. – Daniel
코코아 콩에서 프로토 타입 CollectionViewCell에 reuseIdentifier를 할당 했습니까? – chandu