我正在开发实现自定义控件iOS教程(我会链接它,但我不允许使用两个以上的链接)。
我正处于StackView中生成5个按钮的位置。我为每个按钮实现了这些约束:
button.translatesAutoresizingMaskIntoConstraints = false
button.heightAnchor.constraint(equalToConstant: 44.0).isActive = true
button.widthAnchor.constraint(equalToConstant: 44.0).isActive = true
我完全按照指定输入了所有代码,但是当我运行应用程序时,按钮垂直和水平填充堆栈视图:
如果我将StackView的对齐属性设置为Top,我可以阻止按钮垂直拉伸,但最后一个按钮仍然是水平拉伸的:
我尝试了许多不同的方法来防止最后一个按钮被拉伸无济于事。在控制台中,我看到大小限制被覆盖,但我无法弄清楚是什么。
我希望这些按钮能够在StackView中保持指定的高度和宽度(44)。关于如何做到这一点的任何想法?如果需要,我可以提供更多信息。
答案 0 :(得分:2)
试试这个工作正常。
a = [
[5,4,8,4,9,8],
[3,-2,-1,-1,3,-2,0]
]
for aa in a:
print genSet(aa)
答案 1 :(得分:0)
我遇到了类似的问题,但是所选答案对我不起作用。我可以通过将对齐方式设置为Leading并将对齐方式设置为equalSpacing来解决此问题:
private func setupButtons() {
// My Fix
self.alignment = .leading
self.distribution = .equalSpacing
for _ in 0..<5 {
let button = UIButton()
button.backgroundColor = UIColor.red
button.translatesAutoresizingMaskIntoConstraints = false
button.heightAnchor.constraint(equalToConstant: 44.0).isActive = true
button.widthAnchor.constraint(equalToConstant: 44.0).isActive = true
button.addTarget(self, action: #selector(RatingControl.ratingButtonTapped(button:)), for: .touchUpInside)
addArrangedSubview(button)
}
}
或通过IB:
答案 2 :(得分:-3)
如果你按照手册
,一切都会好转