Я использую пользовательский CollectionViewCell, и когда я хочу добавить текст в пользовательскую ячейку, я пытаюсь это сделать. В учебном пособии, за которым я следую, просто написано cell.label.text, но я, похоже, не смогу сделать это здесь.

override func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
    let cell = collectionView.dequeueReusableCell(withReuseIdentifier: reuseIdentifier, for: indexPath) as! CustomCollectionViewCell

    // Configure the cell
    cell.label.text = "Sec \(indexPath.section)/Item  \(indexPath.item)"   /////error here: CustomCollectionViewCell does not have the member label.
    return cell 
}

Пользовательский CollectionViewCell определяется следующим образом:

import UIKit

@IBDesignable
class CustomCollectionViewCell: UICollectionViewCell {

required init?(coder aDecoder: NSCoder) {
    super.init(coder: aDecoder)
    setup()
}

override init(frame: CGRect){
    super.init(frame: frame)
    setup()
}


func setup(){
    self.layer.borderWidth = 1.0
    self.layer.borderColor = UIColor.black.cgColor
    self.layer.cornerRadius = 5.0

}
}
0
kangarooChris 24 Апр 2017 в 07:20

2 ответа

Лучший ответ

Вам нужно создать IBOutlet из UILable в пользовательской ячейке, чем получить доступ к lable, подобному cell.label, в своем методе cellForItemAt

class CustomCollectionViewCell: UICollectionViewCell {
     @IBOutlet weak var lable: UILabel! //write this line and connect lable in storyboard.
}

< Сильный > UPDATE : введите описание изображения здесь

Откройте раскадровку -> выберите свою ячейку -> Правая панель -> инспектор идентификации -> имя класса -> напишите здесь имя своего класса.

4
jignesh Vadadoriya 24 Апр 2017 в 04:40

Присвойте свой класс CustomCollectionViewCell ячейке в параметре раскадровки, после чего вы сможете создать выход для своей метки

class CustomCollectionViewCell: UICollectionViewCell {
     @IBOutlet weak var lable: UILabel!
}
1
harshal jadhav 24 Апр 2017 в 04:37
43579758