无法在 Alert SwiftUI 中格式化文本
Can't format text in Alert SwiftUI
我想在 SwiftUI 中修改警报中文本的字体大小和颜色。添加
修饰符似乎不起作用。我一定在这里遗漏了一些简单的东西。我创建
最基本的警报屏幕,添加了文本修饰符,它们被忽略了。我创建
我自己的观点来展示我想要的那种结果。很明显,因为我可以做什么
我想,我可以走那条路,尽管这需要很多工作,而且看起来就像
内置警报应该能够做到这一点。
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)
}
}
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
}
}
如有任何指导,我们将不胜感激。
Xcode11.3.1 (11C504)
据我所知,修饰符不适用于 SwiftUI 中的内置警报。它是显示在默认警报视图上的标准系统字体和大小,并且不能像 UIKit 默认警报那样更改。我认为最好的方法是实现自定义修饰符以显示自定义警报
我想在 SwiftUI 中修改警报中文本的字体大小和颜色。添加 修饰符似乎不起作用。我一定在这里遗漏了一些简单的东西。我创建 最基本的警报屏幕,添加了文本修饰符,它们被忽略了。我创建 我自己的观点来展示我想要的那种结果。很明显,因为我可以做什么 我想,我可以走那条路,尽管这需要很多工作,而且看起来就像 内置警报应该能够做到这一点。
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)
}
}
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
}
}
如有任何指导,我们将不胜感激。
Xcode11.3.1 (11C504)
据我所知,修饰符不适用于 SwiftUI 中的内置警报。它是显示在默认警报视图上的标准系统字体和大小,并且不能像 UIKit 默认警报那样更改。我认为最好的方法是实现自定义修饰符以显示自定义警报