【问题标题】:Change Button Anchor Point SwiftUI更改按钮锚点 SwiftUI
【发布时间】:2019-10-29 23:23:37
【问题描述】:

我正在尝试更改确定按钮中心的锚点。以下代码将按钮放在框架的左上角。

Button(action: {
            print(self.note)
        }) {
            Text(note)
        }
        .position(x: 0.0, y: 0.0)

如果我改用 .offset,那么它会起作用。我希望它在它的框架内居中。有没有办法改变锚点?

【问题讨论】:

    标签: ios swift iphone swiftui


    【解决方案1】:

    可能需要开启父容器的frame,这样才能使用frame对齐。

        var body: some View{
    
        GeometryReader{ p in
        VStack{
        Button(action: {
        }) {
            Text("note")
            }
        }.frame(width: p.size.width, height: p.size.height, alignment: .topLeading)
        }
    }
    

    这是另一个粗略但速度更快的版本,AlignmentGuide。

      var body: some View{
        VStack(alignment: .leading){
        Text("")
        Button(action: {
        }) {
            Text("simple version button")
        }.background(Color.red).alignmentGuide(.leading) { v in
            return  -v[.trailing]
        }}.position()
    }
    

    希望你能有更好的答案。

    【讨论】:

    • 我从你的第一个答案中借用了你的一些代码,但我没有使用带有“.frame”的行,而是使用了“.position(x: p.size.height, y: p.size.宽度)”,这纠正了我的问题。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-26
    • 1970-01-01
    相关资源
    最近更新 更多