当我在swiftui中没有约束条件时,我如何管理这个视图?

问题描述 投票:1回答:1

我是SwiftUI的新手,实际上已经掌握了使用Z、V和HStacks安排视图的窍门。但是由于缺乏中心锚,所以很难管理需要锚定在其他视图的不同锚点上的视图,就像下面的例子。

Target UI Screenshot

蓝色的东西是一个popUp,我用下面的代码将按钮的centreY锚定到popUp视图的底部锚定。

popUpView.centerXAnchor.constraint(equalTo: view.centerXAnchor),
popUpView.topAnchor.constraint(equalTo: view.topAnchor, constant: 100),
popUpView.widthAnchor.constraint(equalTo: view.widthAnchor, multiplier: 0.8),
popUpView.heightAnchor.constraint(equalTo: view.heightAnchor, multiplier: 0.45),

myButton.centerXAnchor.constraint(equalTo: popUpView.centerXAnchor),
myButton.centerYAnchor.constraint(equalTo: popUpView.bottomAnchor),
myButton.widthAnchor.constraint(equalTo:   popUpView.widthAnchor, multiplier: 0.285),
myButton.heightAnchor.constraint(equalTo:  popUpView.heightAnchor, multiplier: 0.2),

有没有什么方法可以在SwiftUI中使用堆栈来管理?

swift constraints swiftui
1个回答
1
投票

如果你已经有这样的 popUpViewmyButton 在SwiftUI中准备好的组件,像屏幕上一样的对齐方式实际上可以用两行来完成。

demo

struct ContentView: View {
    var body: some View {
        ZStack(alignment: .bottom) {    // << here !!
            PopUpView()
            MyButton()
                .alignmentGuide(.bottom) { $0.height / 2 } // << here !!
        }
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.