gpt4 book ai didi

SwiftUI GeometryReader 不会在中心布局自定义 subview

转载 作者:行者123 更新时间:2023-12-03 15:02:26 24 4
gpt4 key购买 nike

我有一个自定义 View :

struct ImageContent: View {
var body: some View {
Image("smile")
.resizable()
.scaledToFit()
}
}

哪个被放置到另一个 View 中 GeometryReader :
var body: some View {
GeometryReader { geometry in
ImageContent()
//Image("smile").resizable().scaledToFit()
}
}

问题是, ImageContent View 不是在屏幕上居中,而是被放置在顶部,但是,通过删除 ImageContent subview 并将 View 的内容直接添加到几何阅读器中将解决该问题(见图)。

此外,删除 GeometryReader也可以解决问题。

我需要 subview ,因为我将实现一些额外的逻辑,并且还需要 GeometryReader因为在 Image中添加了一个手势使用它。

任何的想法?

Screenshot

最佳答案

我不确定为什么会发生这种情况,但您可以使用其他人的建议,或使用 midXmidYGeometryProxy的框架。像下面这样:

var body: some View {
GeometryReader { geometry in
ImageContent()
.position(x: geometry.frame(in: .local).midX, y: geometry.frame(in: .local).midY)
}
}

关于SwiftUI GeometryReader 不会在中心布局自定义 subview ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60373719/

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