Свойство для подкласса UICollectionViewCell

Вот мой класс

class myCell: UICollectionViewCell {

     public var myProp:String = ""

     let myControl:UILabel = {

           let label = UILabel()
           label.translatesAutoresizingMaskIntoConstraints = false
           label.Text = myProp

        return label
    }()

}

Я хочу использовать myProp в создании моих элементов пользовательского интерфейса, но компилятор говорит, что я не могу использовать myProp,

или почему это неправильно

class myCell: UICollectionViewCell {

     public var myLabel:UILabel = UILabel()

     let myControl:UIView = {
            let ui = UIView()

            myLabel = {   

              let lbl = UILabel()                                   

              lbl.translatesAutoresizingMaskIntoConstraints = false

              return lbl
            }()

               ui.AddSubView(myLabel)

            return ui
        }()

    }

1 ответ

Это будет работать

class CollectionViewCell: UICollectionViewCell {
     public var myProp:String = ""

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

    }

     func setText() {
        let myControl:UILabel = {
            let label = UILabel()
            label.translatesAutoresizingMaskIntoConstraints = false
            label.text = myProp

            return label
        }()
        self.addSubview(myControl)
    }
}

Во время рендеринга, в cellForRowAtIndex необходимо реализовать это для добавления подпредставления с текстом.

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

    return cell
}
Другие вопросы по тегам