改变 SwiftUI 按钮的锚点位置

3
我正在尝试更改按钮中心的锚点。下面的代码将按钮放置在框架的左上角。
Button(action: {
            print(self.note)
        }) {
            Text(note)
        }
        .position(x: 0.0, y: 0.0)

如果我使用.offset,那么它会起作用。但我希望其在其框架内居中。有没有一种方法可以更改锚点?
1个回答

3
您可能需要打开父容器的框架,以便进行框架对齐。
    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()
}

希望您能获得更好的答案。

我从您的第一个答案中借用了一些代码,但是我使用了“.position(x:p.size.height,y: p.size.width)”而不是使用“.frame”这一行,这解决了我的问题。谢谢! - SpringN

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接