用虚分隔线将 stackview 分成三个子视图?
Divide stackview in three subviews with a dashed divider line?
我正在尝试将 UIStackView 分为三个独立的子视图,并用虚线将它们分开。我知道您可以在 UIStackView 上设置间距,但据我所知您不能将该间距更改为虚线。
基本上我希望我的三个子视图在不同的设备尺寸上适当缩放,但它们之间的虚线总是很小。为清楚起见,我尝试实现的结果如下所示:
我希望有人能指出我正确的方向,在此先感谢!
您可以将 3 个视图限制为具有相同的宽度,然后添加几个限制为恒定宽度的分隔视图。
let stackView = UIStackView()
stackView.axis = .horizontal
self.view.addSubview(stackView)
let view1 = UIView()
view1.backgroundColor = .red
stackView.addArrangedSubview(view1)
let separator1 = UIView()
separator1.backgroundColor = .black
stackView.addArrangedSubview(separator1)
separator1.widthAnchor.constraint(equalToConstant: 1).isActive = true
let view2 = UIView()
view2.backgroundColor = .green
stackView.addArrangedSubview(view2)
view2.widthAnchor.constraint(equalTo: view1.widthAnchor, multiplier: 1).isActive = true
let separator2 = UIView()
separator2.backgroundColor = .black
stackView.addArrangedSubview(separator2)
separator2.widthAnchor.constraint(equalToConstant: 1).isActive = true
let view3 = UIView()
view3.backgroundColor = .blue
stackView.addArrangedSubview(view3)
view3.widthAnchor.constraint(equalTo: view1.widthAnchor, multiplier: 1).isActive = true
我正在尝试将 UIStackView 分为三个独立的子视图,并用虚线将它们分开。我知道您可以在 UIStackView 上设置间距,但据我所知您不能将该间距更改为虚线。
基本上我希望我的三个子视图在不同的设备尺寸上适当缩放,但它们之间的虚线总是很小。为清楚起见,我尝试实现的结果如下所示:
我希望有人能指出我正确的方向,在此先感谢!
您可以将 3 个视图限制为具有相同的宽度,然后添加几个限制为恒定宽度的分隔视图。
let stackView = UIStackView()
stackView.axis = .horizontal
self.view.addSubview(stackView)
let view1 = UIView()
view1.backgroundColor = .red
stackView.addArrangedSubview(view1)
let separator1 = UIView()
separator1.backgroundColor = .black
stackView.addArrangedSubview(separator1)
separator1.widthAnchor.constraint(equalToConstant: 1).isActive = true
let view2 = UIView()
view2.backgroundColor = .green
stackView.addArrangedSubview(view2)
view2.widthAnchor.constraint(equalTo: view1.widthAnchor, multiplier: 1).isActive = true
let separator2 = UIView()
separator2.backgroundColor = .black
stackView.addArrangedSubview(separator2)
separator2.widthAnchor.constraint(equalToConstant: 1).isActive = true
let view3 = UIView()
view3.backgroundColor = .blue
stackView.addArrangedSubview(view3)
view3.widthAnchor.constraint(equalTo: view1.widthAnchor, multiplier: 1).isActive = true