ограничения ячеек представления коллекции в другом представлении коллекции - PullRequest
0 голосов
/ 30 декабря 2018

Я создал собственный класс для UICollectionView.И я хочу поместить другой вид Коллекции в ячейку первого класса.

import UIKit

class ModeCell: UICollectionViewCell {

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


    let modeCollection : UICollectionView = {
        let layout = UICollectionViewFlowLayout()
        let collectionView = UICollectionView(frame: .zero, collectionViewLayout: layout)
        collectionView.backgroundColor = .cyan
        collectionView.translatesAutoresizingMaskIntoConstraints = false
        return collectionView
    }()

    func setupView(){
        backgroundColor = .red

        addSubview(modeCollection)
                addConstraints(NSLayoutConstraint.constraints(withVisualFormat: "H:[v0(180)]-20-|", options: NSLayoutFormatOptions(), metrics: nil, views: ["v0": modeCollection]))

                addConstraints(NSLayoutConstraint.constraints(withVisualFormat: "V:|-25-[v0(180)]", options: NSLayoutFormatOptions(), metrics: nil, views: ["v0": modeCollection]))

                addConstraints(NSLayoutConstraint.constraints(withVisualFormat: "H:|-30-[v0(160)]|", options: NSLayoutFormatOptions(), metrics: nil, views: ["v0": modeCollection]))

                addConstraints(NSLayoutConstraint.constraints(withVisualFormat: "V:|-95-[v0]", options: NSLayoutFormatOptions(), metrics: nil, views: ["v0": modeCollection]))

    }

    required init?(coder aDecoder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }
}

Этот код работает нормально, но мне интересно, возможно ли использовать ограничения, как я использую их в другом проекте:

modeCollection.centerXAnchor.constraint (equalTo: .centerXAnchor).isActive = true modeCollection.

Проблема в том, что в моем новом пользовательском классе нет "представления", и мне не на что ссылаться ...

1 Ответ

0 голосов
/ 31 декабря 2018

Вместо создания ограничений для view, вы создаете ограничения для self, которые будут ссылаться на сам UICollectionViewCell (ModeCell в вашем случае).

...