在tableview部分标题中定位UIStackView

时间:2016-04-04 13:11:00

标签: swift autolayout stackview

我有一个tableview,我想在每个部分标题中都有一个UIStackView。现在,我想给这个stackView一个小填充:特别是,我希望stackView占用整个空间,除了2px的每一面。这可能吗?这就是我试过的:

override func tableView(tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {

        let sNumber = UILabel()
        sNumber.backgroundColor = UIColor.yellowColor()
        sNumber.text = String(section)+". "

        let lbl = UILabel()
        lbl.backgroundColor = UIColor.cyanColor()
        lbl.text = (detailItem![section]["canary"] as! String)

        let lbl2 = UILabel()
        lbl2.backgroundColor = UIColor.greenColor()
        lbl2.text = (detailItem![section]["tbd"] as! String)

        let stackView   = UIStackView()
        stackView.axis  = UILayoutConstraintAxis.Horizontal
        stackView.distribution  = UIStackViewDistribution.FillProportionally
        stackView.alignment = UIStackViewAlignment.Center
        stackView.spacing = 10

        let margins = stackView.layoutMarginsGuide
        stackView.leadingAnchor.constraintEqualToAnchor(margins.leadingAnchor, constant: 2).active = true
        stackView.trailingAnchor.constraintEqualToAnchor(margins.trailingAnchor, constant: 2).active = true
        stackView.topAnchor.constraintEqualToAnchor(margins.topAnchor, constant: 2).active = true
        stackView.bottomAnchor.constraintEqualToAnchor(margins.bottomAnchor, constant: 2).active = true

        stackView.addArrangedSubview(sNumber)
        stackView.addArrangedSubview(lbl)
        stackView.addArrangedSubview(lbl2)

        return stackView
    }

感谢任何帮助。

0 个答案:

没有答案