Не удается отформатировать текст в Alert SwiftUI - PullRequest
0 голосов
/ 07 февраля 2020

Я хотел бы изменить размер шрифта и цвет текста в предупреждении в SwiftUI. Добавление модификаторов, похоже, не работает. Я, должно быть, здесь упускаю что-то простое. Я создал большинство базовых экранов предупреждений, добавил текстовые модификаторы, и они игнорируются. Я создал свой собственный вид, чтобы показать, какой результат я хотел бы получить. Очевидно, что, поскольку я могу делать то, что хочу, я мог бы go по этому маршруту, хотя это большая работа, и кажется, что встроенное оповещение должно быть в состоянии сделать это.

struct ContentView: View {
    @State private var showAlert = false
    @State private var showMyAlert = false
    var body: some View {
        GeometryReader { geo in
            ZStack {
                VStack {
                    Text("Make Some Font Business")
                        .font(.title)
                        .foregroundColor(.red)

                    Button(action: {
                        self.showAlert.toggle()
                    }) {
                        Text("Toggle System Alert")
                    }

                    Button(action: {
                        self.showMyAlert.toggle()
                    }) {
                        Text("Show MyAlert")
                    }
                }
                if self.showMyAlert {
                    MyAlert(showMyAlert: self.$showMyAlert)
                        .animation(.easeInOut)
                }

            }//vstack

                .frame(width: geo.size.width, height: geo.size.height)
                .background(self.showMyAlert ? Color.gray.opacity(0.2) : Color.white)

                .alert(isPresented: self.$showAlert) {
                    Alert(title: Text("Important"),
                          message: Text("This text should be large and it should be green")
                            .font(.system(size: 36))
                            .foregroundColor(.green),
                          dismissButton: .default(Text("Ok")))
            }//.alert
        }//geo
        .edgesIgnoringSafeArea(.all)
    }
}

enter image description here enter image description here enter image description here

struct MyAlert: View {  
    @Binding var showMyAlert: Bool  
    var body: some View {
        ZStack {
            RoundedRectangle(cornerRadius: 20)
                .frame(width: 275, height: 180, alignment: .center)
                .foregroundColor(.white).opacity(1.0)
            VStack {
                Text("Important")
                    //.fontWeight(.bold)
                    .font(.system(size: 20))
                Divider()
                Text("This text should be large and it should be green")
                    .font(.system(size: 20))
                    .foregroundColor(.green)
                    .multilineTextAlignment(.center)
                Divider()
                Button(action: {
                    self.showMyAlert.toggle()
                } ) {
                    Text("Ok")
                        .foregroundColor(.blue)
                        .font(.system(size: 20))
                }
            }//vstack
            .frame(width: 225, height: 150, alignment: .center)
        }//zstack
    }
}

Будем благодарны за любые указания.

Xcode 11,3,1 (11C504)

1 Ответ

1 голос
/ 07 февраля 2020

Как я знаю, модификаторы не работали на встроенном оповещении в SwiftUI. Это стандартный системный шрифт и размер, отображаемый в представлении предупреждений по умолчанию, и его нельзя изменить, как в предупреждении UIKit по умолчанию. Я думаю, что лучший способ - реализовать пользовательский модификатор, чтобы показать пользовательское предупреждение

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