gpt4 book ai didi

swiftui - ZStack 或使用 .overlay() 之间的区别

转载 作者:行者123 更新时间:2023-12-03 14:36:48 25 4
gpt4 key购买 nike

使用 ZStack 有什么区别?与使用 .overlay() 相比修饰符。
苹果 说:ZStack = "覆盖其子项的 View ,使它们在两个轴上对齐。".overlay = "在此 View 前分层一个辅助 View 。"
一些例子:

ZStack(alignment: .bottom) {
Image(systemName: "folder")
.font(.system(size: 55, weight: .thin))
Text("❤️")
}
Image(systemName: "folder")
.font(.system(size: 55, weight: .thin))
.overlay(Text("❤️"), alignment: .bottom)
不考虑代码大小,是否有一个必须使用另一个的明确目的?

最佳答案

ZStack View 彼此独立,并且堆栈适合(如果没有自己的框架)到最大 View 。 ZStack 中的订单也可以使用 .zIndex 进行修改。修饰符。所有 View 都在 ZStack 坐标空间中。
.overlay情况下,覆盖层内的 View 始终绑定(bind)到父 View 并始终位于父 View 之上(即 zIndex 不起任何作用)。叠加 View 也在父 View 坐标空间中。
最明显的区别是是否使 View 大小不同并应用剪辑,即

struct TestZStack: View {
var body: some View {
ZStack(alignment: .bottom) {
Image(systemName: "folder")
.font(.system(size: 55, weight: .thin))
Text("❤️").font(.system(size: 55, weight: .thin))
}
.clipped()
}
}

demo 1
struct TestOverlay: View {
var body: some View {
Image(systemName: "folder")
.font(.system(size: 55, weight: .thin))
.overlay(Text("❤️").font(.system(size: 55, weight: .thin)), alignment: .bottom)
.clipped()
}
}

demo2
backup

关于swiftui - ZStack 或使用 .overlay() 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63446213/

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