当我在 swiftui 中无法使用约束时,如何管理此视图?
How can I manage this view when constraints aren't available to me in swiftui?
我是 SwiftUI 的新手,实际上已经掌握了使用 Z、V 和 HStacks 排列视图的窍门。但是事实证明,缺少中心锚点很难管理需要锚定到其他视图的不同锚点的视图;如以下情况:
蓝色的东西是弹出窗口,我使用以下代码将按钮的 centreY 锚点锚定到弹出视图的底部锚点:
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 中使用堆栈来管理它吗?
如果您已经在 SwiftUI 中准备了这样的 popUpView
和 myButton
组件,那么屏幕上的对齐实际上可以在两行中完成
struct ContentView: View {
var body: some View {
ZStack(alignment: .bottom) { // << here !!
PopUpView()
MyButton()
.alignmentGuide(.bottom) { [=10=].height / 2 } // << here !!
}
}
}
偏移量将取决于自定义按钮的高度(我以 20 为例)。
struct ContentView: View {
var body: some View {
VStack {
PopUpView()
MyButton()
.offset(y: -20)
}
}
}
我是 SwiftUI 的新手,实际上已经掌握了使用 Z、V 和 HStacks 排列视图的窍门。但是事实证明,缺少中心锚点很难管理需要锚定到其他视图的不同锚点的视图;如以下情况:
蓝色的东西是弹出窗口,我使用以下代码将按钮的 centreY 锚点锚定到弹出视图的底部锚点:
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 中使用堆栈来管理它吗?
如果您已经在 SwiftUI 中准备了这样的 popUpView
和 myButton
组件,那么屏幕上的对齐实际上可以在两行中完成
struct ContentView: View {
var body: some View {
ZStack(alignment: .bottom) { // << here !!
PopUpView()
MyButton()
.alignmentGuide(.bottom) { [=10=].height / 2 } // << here !!
}
}
}
偏移量将取决于自定义按钮的高度(我以 20 为例)。
struct ContentView: View {
var body: some View {
VStack {
PopUpView()
MyButton()
.offset(y: -20)
}
}
}