Добавление нескольких элементов пользовательского интерфейса и ограничение - PullRequest
0 голосов
/ 19 октября 2018

У меня есть такая настройка UIView

  • UIView
    • UIScrollView (self.scrollView)
      • UIView (self.contentView)
      • LineChartView (self.chart)
      • M13CheckBox [подмножество UIControl]

Отображение диаграммы включает в себя несколько строк, которые яПланирование управления с несколькими флажками.Тем не менее, я не могу ограничить флажки друг с другом!

Вот мой код:

    var unconstrainedChecks = [M13Checkbox]()
    for year in years { // years = ["2015","2016","2017"]
        let checkbox = CustomizedCheckBox().checkbox
        checkbox.backgroundColor = .purple
        self.contentView.addSubview(checkbox)
        unconstrainedChecks.append(checkbox)
    }
    for i in 0..<unconstrainedChecks.count - 1 {
        print(i)
        let checkbox = unconstrainedChecks[i]
        let nextCheckbox = unconstrainedChecks[i+1]
        checkbox.snp.makeConstraints { (make) in
            if i == 0 {
                make.top.equalTo(self.chart.snp.bottom).offset(20)
                make.width.height.equalTo(50)
                make.left.equalTo(self.contentView)
            }
            make.bottom.equalTo(nextCheckbox.snp.top)
        }

        nextCheckbox.snp.makeConstraints { (make) in
            make.width.height.equalTo(50)
            make.left.equalTo(self.contentView)
            make.top.equalTo(checkbox.snp.bottom)
        }

    }

Где CustomizedCheckBox это

class CustomizedCheckBox {
    let checkbox: M13Checkbox
    init() {
        checkbox = M13Checkbox()
        checkbox.setCheckState(.checked, animated: false)
        checkbox.stateChangeAnimation = .bounce(.fill)
        checkbox.secondaryTintColor =  UIColor(hexString: "47cae8")
        checkbox.secondaryCheckmarkTintColor = .white //checkmark
        checkbox.tintColor = UIColor(hexString: "53cce7")
    }
}

Iпосмотрел на просмотр иерархической вещи, и я вообще не мог видеть флажок.

1 Ответ

0 голосов
/ 19 октября 2018

Я исправил проблему.Мне нужно было ограничить последний флажок self.contentView.bottom.

и добавить это в цикл nextCheckbox.

            if i + 1 == unconstrainedChecks.count - 1 {
                make.bottom.equalTo(self.contentView.snp.bottom)
            }
...