UICollectionViewCell의 아울렛이 0인 이유는 무엇입니까?
Interface Builder에서 사용자 지정 UICollectionViewCell을 만들고 이에 대한 뷰를 클래스에 바인딩한 다음 문자열을 사용하고 문자열의 레이블에 설정하려면 레이블 값이 0입니다.
override func viewDidLoad() {
super.viewDidLoad()
// Register cell classes
self.collectionView.registerClass(LeftMenuCollectionViewCell.self, forCellWithReuseIdentifier: "ls")
}
override func collectionView(collectionView: UICollectionView!, cellForItemAtIndexPath indexPath: NSIndexPath!) -> UICollectionViewCell! {
var cell: LeftMenuCollectionViewCell
cell = collectionView.dequeueReusableCellWithReuseIdentifier("ls", forIndexPath: indexPath) as LeftMenuCollectionViewCell
println(cell.label) // <- this is nil, why??
cell.label.text = "asd"
return cell
}
그리고 하위 분류된 세포는
class LeftMenuCollectionViewCell: UICollectionViewCell {
@IBOutlet weak var imageView: UIImageView!
@IBOutlet weak var label: UILabel!
@IBOutlet weak var activityIndicatorView: UIActivityIndicatorView!
}
전화했습니다self.collectionView.registerClass(LeftMenuCollectionViewCell.self, forCellWithReuseIdentifier: "ls")
스토리보드를 사용하는 경우 이 이름을 부르고 싶지 않습니다.스토리보드에 있는 내용을 덮어씁니다.
여전히 문제가 있으면 확인하십시오.reuseIdentifier
에 있어서는 같습니다.dequeueReusableCellWithReuseIdentifier
그리고.storyboard
.
이 줄을 제거하기만 하면 됩니다.
self.collectionView.registerClass(LeftMenuCollectionViewCell.self, forCellWithReuseIdentifier: "ls")
xib를 사용하는 경우, 이 코드 줄을 로드 보기에 추가했는지 확인합니다.
목표 C:
[self.collectionView registerNib:[UINib nibWithNibName:@"MyCell" bundle:nil] forCellWithReuseIdentifier:@"MyCellIdentifier"];
스위프트:
collectionView.register(UINib(nibName:"MyCell", bundle: nil), forCellWithReuseIdentifier:"MyCellIdentifier")
그놈들 등록해야 돼요!
collectionView.register(UINib(nibName: "CustomCell", bundle: nil), forCellWithReuseIdentifier: "CustomCellId")
등록하는 방법은 두 가지가 있는 것 같은데 처음에는 잘못된 방법을 사용했습니다.나는 커스텀 xib 뷰를 가지고 있어서 두 번째 옵션에 등록했고, 우리는 데이터를 가지고 있습니다!
1:
collectionView?.register(YourItemClassName.self, forCellWithReuseIdentifier: "yourIdentifier")
2:
collectionView?.register(UINib(nibName: "YourItemClassName", bundle: nil), forCellWithReuseIdentifier: "yourIdentifier")
저도 비슷한 문제가 있었는데, 제 실수는 CollectionViewCell이 레이블 텍스트를 변경할 수 있도록 위임하지 않은 것입니다.
제 생각에 가장 좋은 해결책은 스토리보드에서 직접 사용하는 것입니다.CollectionView
또는 제거해야 합니다.CollectionViewCell
당신의CollectionView
다음 명령을 사용하여 셀을 등록합니다.
컬렉션 보기?레지스터(UINib(nibName: "YourItemClassName", 번들: nil), 재사용 식별자가 있는 CellWithRuseIdentifier: "yourIdentifier")
휴대폰을 등록하지 않으셨군요
fileprivate let yourIdentifier = ""yourIdentifier"
super.viewDidLoad() {
//여기서 셀 컬렉션 보기를 등록해야 합니까?레지스터(이름 Of)재사용 식별자가 있는 셀의 Class.self: "your Identifier") }
언급URL : https://stackoverflow.com/questions/25165195/why-is-uicollectionviewcells-outlet-nil
'programing' 카테고리의 다른 글
SQL Server 운영 체제 오류 5: "5(액세스가 거부되었습니다.)" (0) | 2023.05.24 |
---|---|
C#의 문을 사용하여 중첩됨 (0) | 2023.05.24 |
jQuery로 5초 기다리는 방법? (0) | 2023.05.24 |
Microsoft의 데이터베이스 명명 규칙? (0) | 2023.05.24 |
바이트 배열을 기본 null이 아닌 특정 값으로 초기화하시겠습니까? (0) | 2023.05.24 |