首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在GeometryReader中ZStack对齐不居中?

在GeometryReader中ZStack对齐不居中?
EN

Stack Overflow用户
提问于 2021-07-07 02:44:31
回答 1查看 64关注 0票数 2

我有以下的看法:

代码语言:javascript
复制
struct TestView: View {
    
    var body: some View {
        GeometryReader { geo in
            ZStack(alignment: Alignment(horizontal: .center, vertical: .center)) {
                                
                    Text("TEST TEXT")
                
            }.background(Color.red)
        }
    }
    
}

渲染以下内容:

我希望ZStack中的视图居中,这只在我移除GeometryReader时才起作用,如下所示:

代码语言:javascript
复制
struct TestView: View {
    
    var body: some View {
        ZStack(alignment: Alignment(horizontal: .center, vertical: .center)) {
            
            Text("TEST TEXT")
            
        }.background(Color.red)
    }
    
}

渲染以下内容:

如何才能在使用GeometryReader的同时仍然让ZStack中的内容居中显示,如上面最后一张渲染图片所示?为什么GeometryReader会搞乱ZStack内容对齐?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-07-07 02:49:43

GeometryReader的对齐方式一直在变化--参见GeometryReader Discrepancies with Previous OS Versions。要获得正常的行为,我通常只需添加.frame(maxWidth: .infinity, maxHeight: .infinity)

代码语言:javascript
复制
struct TestView: View {
    var body: some View {
        GeometryReader { geo in
            ZStack { /// no need for the custom Alignment
                Text("TEST TEXT")
            }
            .background(Color.red)
            .frame(maxWidth: .infinity, maxHeight: .infinity) /// here!
        }
    }
}

结果:

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68275926

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档