Пользовательский вид ячейки и стека программно - PullRequest
0 голосов
/ 13 декабря 2018

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

Во-вторых, я размещаю код после:

 override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
    super.init(style: style, reuseIdentifier: "cellId") 

Я использую этот код для создания представления стека:

   let thestack: UIStackView = {
        let sv = UIStackView()
        sv.distribution = .fillEqually
        sv.axis = .vertical
        sv.spacing = 8
         return sv
    }()

Но я не могу добавить к этому упорядоченные подпредставления, в дополнение к которым после добавления подпредставления (стека) и перечисления всех ограничений - ни одна из моих данных не отображается в пользовательской ячейке.Любая помощь будет оценена.

1 Ответ

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

Да, это возможно.Следуйте, как показано ниже:

class CustomTableViewCell: UITableViewCell {

let stackView: UIStackView = {
    let stackView = UIStackView()
    stackView.translatesAutoresizingMaskIntoConstraints = false
    stackView.spacing = 10
    stackView.distribution = .fillEqually
    return stackView
}()

override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
    super.init(style: .default, reuseIdentifier: reuseIdentifier)

    addSubview(stackView)
    stackView.leftAnchor.constraint(equalTo: leftAnchor, constant: 10).isActive = true
    stackView.topAnchor.constraint(equalTo: topAnchor, constant: 10).isActive = true
    stackView.rightAnchor.constraint(equalTo: rightAnchor, constant: -10).isActive = true
    stackView.bottomAnchor.constraint(equalTo: bottomAnchor, constant: -10).isActive = true

    let redView = UIView()
    redView.backgroundColor = .red

    let yellowView = UIView()
    yellowView.backgroundColor = .yellow

    let blackView = UIView()
    blackView.backgroundColor = .black

    stackView.addArrangedSubview(redView)
    stackView.addArrangedSubview(yellowView)
    stackView.addArrangedSubview(blackView)
}

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

Вывод:

...