gpt4 book ai didi

ios - 使用 equalToSystemSpacingAfter 前后边距的布局

转载 作者:行者123 更新时间:2023-11-28 23:19:52 25 4
gpt4 key购买 nike

我正在尝试将一些必须的布局更改为无数字布局。这就是我所拥有的分段条形图,它应该位于容器 View 中,类似这样的 | - margin - 分段 - margin -|

segmentedControl.leadingAnchor.constraint(equalToSystemSpacingAfter: margins.leadingAnchor, multiplier: 1),
segmentedControl.trailingAnchor.constraint(equalToSystemSpacingAfter: margins.trailingAnchor, multiplier: 1),

我知道第二行没有任何意义,但紧接着我没有看到任何 equalToSystemSpacingBEFORE,而且我不确定如何在不依赖布局传播的情况下做到这一点。

基本上,leadingAchor 可以很好地处理这段代码,但 trailingAnchor(正如方法名称所暗示的那样)在尾随 anchor 之后添加边距,这不是我想要的。

有什么想法吗?

最佳答案

您可以相对于分段控件的 trailingAnchor 限制“容器” View 的 trailingAnchor。

这是一个简单的示例,我相信可以为您提供所需的布局:

class SysSpacingViewController: UIViewController {

let seg: UISegmentedControl = {
let v = UISegmentedControl(items: ["A", "B", "C"])
v.translatesAutoresizingMaskIntoConstraints = false
return v
}()

let cView: UIView = {
let v = UIView()
v.translatesAutoresizingMaskIntoConstraints = false
v.backgroundColor = .white
return v
}()

override func viewDidLoad() {
super.viewDidLoad()

view.backgroundColor = .systemYellow

cView.addSubview(seg)
view.addSubview(cView)

let g = view.safeAreaLayoutGuide
let m = cView.layoutMarginsGuide

NSLayoutConstraint.activate([

cView.topAnchor.constraint(equalTo: g.topAnchor, constant: 40.0),
cView.leadingAnchor.constraint(equalTo: g.leadingAnchor, constant: 40.0),
cView.trailingAnchor.constraint(equalTo: g.trailingAnchor, constant: -40.0),
cView.heightAnchor.constraint(equalToConstant: 70.0),

seg.leadingAnchor.constraint(equalToSystemSpacingAfter: m.leadingAnchor, multiplier: 1.0),
m.trailingAnchor.constraint(equalToSystemSpacingAfter: seg.trailingAnchor, multiplier: 1.0),

seg.centerYAnchor.constraint(equalTo: cView.centerYAnchor),

])

}

}

结果:

enter image description here

关于ios - 使用 equalToSystemSpacingAfter 前后边距的布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59790793/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com