Изменить точку привязки кнопки SwiftUI - PullRequest
1 голос
/ 30 октября 2019

Я пытаюсь изменить опорную точку для того, что определяет центр кнопки. Следующий код помещает кнопку в верхнем левом углу рамки.

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

Если я использую вместо этого .offset, то это будет работать. Я бы хотел, чтобы он был в центре кадра. Есть ли способ изменить точку привязки?

1 Ответ

1 голос
/ 30 октября 2019

Вам может потребоваться включить фрейм родительского контейнера, чтобы вы могли использовать выравнивание фреймов.

    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()
}

Надеюсь, у вас получится лучший ответ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...