Center Item Inside Horizontal Stack

后端 未结 4 586
暗喜
暗喜 2020-12-02 02:34

If I have 3 items inside a Horizontal Stack, I thought I could do something like this:

HStack{

      Text(\"test\")

      Spacer()

      item2()

      Sp         


        
4条回答
  •  谎友^
    谎友^ (楼主)
    2020-12-02 03:30

    You may need to add some customized Alignment components.

                           extension HorizontalAlignment{
                        private enum MyHAlignment: AlignmentID {
                            static func defaultValue(in d: ViewDimensions) -> CGFloat {
                                return d[HorizontalAlignment.center]
                            }
                        }
                         static let myhAlignment = HorizontalAlignment(MyHAlignment.self)
                    }
    
    
    
    
    
    
    
             HStack{
                    Spacer()
                      Text("jjjjjjjjjj")
                     Spacer()
                      Image("image").alignmentGuide(.myhAlignment) { (ViewDimensions) -> CGFloat in
                          return ViewDimensions[HorizontalAlignment.center]
                      }
                    Spacer()
    
                      Text("test")
    
                  }.frame(alignment: Alignment(horizontal: .myhAlignment, vertical: .center))
    

提交回复
热议问题