SwiftUI координатное пространство - PullRequest
1 голос
/ 04 июня 2019

Кто-нибудь знает, как SwiftUI рендерится с точки зрения координатного пространства?Не похоже, что источник кадра сейчас находится в 0, 0 в левом верхнем углу.Например, добавление Text с модификатором сместит метку за пределы представления.

var body: some View {
    Text("my long enough string")
      .position(CGPoint(x: 0, y: 100))
}

В результате я вижу только "тьфу-строку".

Ответы [ 4 ]

1 голос
/ 06 июня 2019

.position (x, y) установит центр представления в указанную координату вместе с родителем.

Вам потребуется использовать Stacks / Container для позиционирования отображаемых элементов относительно друг друга, используяaligments и spacer.

Представления всегда начинаются в центре экрана.

Примерно так:

   HStack(alignment: .top) {
        VStack(alignment: .leading) {
            Text("top left")
            Spacer()
            Text("bottom left")
        }

        Spacer()
        VStack(alignment: .leading) {
            Text("top right")
            Spacer()
            Text("bottom right")
        }
    }
1 голос
/ 04 июня 2019

Координатное пространство на iOS имеет 0, 0 в верхнем левом углу. Ваш текст усекается, потому что атрибут position: «Фиксирует центр этого представления в указанной точке в координатном пространстве его родителя».

0 голосов
/ 19 июня 2019
.position(x, y)

In above function:
// - Parameters:
// - x: The x-coordinate at which to place the center of this view.
// - y: The y-coordinate at which to place the center of this view.

fix Taxt at center of that view (superview)

For that you can use .padding() function.
Ex: Text("my long enough string").padding(.top, 20)
0 голосов
/ 05 июня 2019

Вы можете использовать 'padding' вместо позиции.

Text("Hello World").padding(EdgeInsets.init(top: 100, leading: 0, bottom: 0, trailing: 0))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...