自上周以来我一直试图解决这个问题,而没有更进一步.好的,所以我需要在Swift中以编程方式应用一些约束 来使用这段代码:UIView
var new_view:UIView! = UIView(frame: CGRectMake(0, 0, 100, 100));
new_view.backgroundColor = UIColor.redColor();
view.addSubview(new_view);
var constX:NSLayoutConstraint = NSLayoutConstraint(item: new_view, attribute: NSLayoutAttribute.CenterX, relatedBy: NSLayoutRelation.Equal, toItem: self.view, attribute: NSLayoutAttribute.CenterX, multiplier: 1, constant: 0);
self.view.addConstraint(constX);
var constY:NSLayoutConstraint = NSLayoutConstraint(item: new_view, attribute: NSLayoutAttribute.CenterY, relatedBy: NSLayoutRelation.Equal, toItem: self.view, attribute: NSLayoutAttribute.CenterY, multiplier: 1, constant: 0);
self.view.addConstraint(constY);
var constW:NSLayoutConstraint = NSLayoutConstraint(item: new_view, attribute: NSLayoutAttribute.Width, relatedBy: NSLayoutRelation.Equal, toItem: new_view, attribute: NSLayoutAttribute.Width, multiplier: 1, constant: 0);
self.view.addConstraint(constW);
var constH:NSLayoutConstraint = NSLayoutConstraint(item: new_view, attribute: …Run Code Online (Sandbox Code Playgroud) 我对Xcode中的Auto布局约束不熟悉.我有一个像UITabBar6的底部视图UIButtons.在没有约束的情况下,我将这些按钮与每个按钮的5个空格填充对齐,每个按钮的宽度为50.现在,我试图通过使用自动布局来支持所有屏幕尺寸.
在Storyboard约束中,我为6个按钮设置了相等的宽度,每个按钮之间有60个空格.我将第一个按钮0设置为前导空格,然后将最后一个按钮0设置为尾部约束.
我想要buttons with equal width and flexible spaces所有设备尺寸的视图之间.
有人可以帮我吗?寻求帮助.提前致谢.
我有一个带有 3 个按钮的水平堆栈视图:音乐应用程序的后退、播放、前进。这是我当前的代码:
self.controlStackView.axis = .horizontal
self.controlStackView.distribution = .equalSpacing
self.controlStackView.alignment = .center
self.controlStackView.spacing = 10.0
self.controlStackView.translatesAutoresizingMaskIntoConstraints = false
self.contentView.addSubview(self.controlStackView)
self.controlStackView.topAnchor.constraint(equalTo: self.artworkImageView.bottomAnchor, constant: 10.0).isActive = true
self.controlStackView.centerXAnchor.constraint(equalTo: self.contentView.centerXAnchor).isActive = true
Run Code Online (Sandbox Code Playgroud)
这是做什么的,它按如下方式分布按钮(由于对齐而从中心开始):
[backward] - 10 spacing - [play] - 10 spacing - [forward]
我可以增加间距,但它仍然是固定的。因此,我设置前导和尾随锚点来定义堆栈视图的最大宽度:
self.controlStackView.leadingAnchor.constraint(equalTo: self.leadingAnchor).isActive = true
self.controlStackView.trailingAnchor.constraint(equalTo: self.trailingAnchor).isActive = true
Run Code Online (Sandbox Code Playgroud)
这对布局有何影响:
[left edge backward] - lots of spaaaaaaace - [centered play] - lots of spaaaaaaace - [right edge forward]
它分布在整个宽度上(并且中心到左侧和右侧之间有一个 .equalSpacing)。但这也没有帮助。本质上我的目标是拥有真正的相等间距,包括边缘。
假设我的可用宽度为 100,我的 3 个按钮分别为 10、20、10 - 这意味着还有 60 个剩余空间是空的。 …