Выравнивание по нижнему краю для видов с использованием verticalAlighment и alignmentGuide - PullRequest
0 голосов
/ 16 июня 2019

Я смотрел видео WWDC Создание пользовательских представлений с помощью SwiftUI о некоторой продвинутой технике с использованием SwiftUI, но я не могу выровнять нижние элементы, которые не находятся в том же HStack, см. Изображение ниже:

enter image description here

В основном я хочу выровнять изображение профиля по низу текстового представления, но это не работает, я следовал тому же коду из видео, используя.alignmentGuide модификатор, но он просто не работает.Спасибо!

    struct MessageView : View {
    var body: some View {
        HStack {
            HStack(alignment: .center) {
                RoundImage(image: Image("turtlerock"))
                    .frame(width: 35)
                    .alignmentGuide(.bottomImageAndText) { d in
                        d[.bottom]
                    }
                VStack(alignment: .leading) {
                    Text("AR demo from Apple site ? AR demo from Apple site ? AR demo from Apple site ? AR demo from Apple site ?")
                        .fontWeight(.regular)
                        .padding(EdgeInsets(top: 10, leading: 10, bottom: 10, trailing: 10))
                        .lineLimit(5)
                        .border(Color.gray, width: 1, cornerRadius: 15)
                        .layoutPriority(2)
                        .alignmentGuide(.bottomImageAndText) { d in
                            d[.bottom]
                        }
                    HStack {
                        Image(systemName: "heart.fill")
                            .foregroundColor(.red)
                        RoundImage(image: Image("turtlerock"))
                            .frame(height: 16)
                    }
                    .padding(.leading)
                }
            }.padding(EdgeInsets(top: 0, leading: 10, bottom:0 , trailing: 0))
            .layoutPriority(1)
            Spacer()} }
}

extension VerticalAlignment {
    private enum BottomImageAndText : AlignmentID {
        static func defaultValue(in d: ViewDimensions) -> Length {
            return d[.bottom]
        }
    }

    static let bottomImageAndText = VerticalAlignment(BottomImageAndText.self)
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...