如何将底部边缘与上方视图的中心对齐 swiftui

Posted

技术标签:

【中文标题】如何将底部边缘与上方视图的中心对齐 swiftui【英文标题】:How to align bottom edge to Center of above view swiftui 【发布时间】:2021-09-29 00:48:09 【问题描述】:

我目前正在尝试将人物图像垂直中心 (/centerY) 与 SwiftUI 视图中渐变视图的底部边缘对齐。

代码:-

struct GroupDetailScreen: View 
var body: some View 
    ZStack
        VStack 
            LinearGradient(gradient: Gradient(colors: [Color.red,Color.blue]), startPoint: .top, endPoint: .bottom)
                .frame(width:UIScreen.screenWidth,height: 180, alignment: .center)
                .clipped()
            ZStack
                Image(systemName: "person.circle.fill")
                    .renderingMode(.original)
                    .resizable()
                    .frame(width: 100, height: 100)
                    .aspectRatio(contentMode: .fit)
            
         
      
   

输出

想要达到:-

有人可以向我解释如何将人物图像垂直中心 (/centerY) 与渐变视图的底部边缘对齐。我已经尝试按照上面的方法实现,但还没有结果。

任何帮助将不胜感激。

提前致谢。

【问题讨论】:

【参考方案1】:

我认为有几种方法可以做到这一点。

我在这里用overlayoffset使用了这种方式。

struct GroupDetailScreen: View 
var body: some View 
    ZStack
        VStack 
            LinearGradient(gradient: Gradient(colors: [Color.red,Color.blue]), startPoint: .top, endPoint: .bottom)
                .frame(width: UIScreen.main.bounds.width, height: 180, alignment: .center)
                .clipped()
                .overlay(
                    Image(systemName: "person.circle.fill")
                        .renderingMode(.original)
                        .resizable()
                        .frame(width: 100, height: 100)
                        .aspectRatio(contentMode: .fit)
                        .offset(y: 90) // 1/2 of view height (180*(1/2)
                )
                .edgesIgnoringSafeArea(.all) // for ignore safe area
            
            Spacer()
         
      
   


【讨论】:

以上是关于如何将底部边缘与上方视图的中心对齐 swiftui的主要内容,如果未能解决你的问题,请参考以下文章

在 SwiftUI 中显示键盘上方的视图 [关闭]

无法将视图边缘与另一个中心对齐视图对齐

SwiftUI从中心向右水平对齐

SwiftUI 如何将视图的前导对齐到最超级视图的前导?

Android:如何对齐底部的按钮和上方的列表视图?

SwiftUI 使用 GeometryReader 时覆盖层的错误垂直对齐