ios - 无法在警报 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
}
}
任何指导将不胜感激。
Xcode 11.3.1 (11C504)
解决方案
据我所知,修饰符不适用于 SwiftUI 中的内置警报。这是在默认警报视图上显示的标准系统字体和大小,并且不能像 UIKit 默认警报那样更改。我认为最好的方法是实现自定义修饰符来显示自定义警报
推荐阅读
- sql - 如何过滤 Django 模型以仅包含出现在子表(带有 ForeignKey)表中的模型?
- ios - lldb - 如何覆盖字典中的值?
- command-prompt - 在命令提示符下删除目录
- python - Python Opencv图像拼接创建空文件
- mongodb - 在 MoongoDb 中合并对象数组的问题
- ruby - 如何只导入想要的方法,而不是 Ruby 中的所有库
- python - kivy多屏找不到id
- javascript - 当我以 png 格式更改徽标的名称“Zetaceos”时,我的登录页面 html 的滑动条开始失败
- python - Matplotlib/Seaborn 上的计算值(Pandas Dataframe)
- python - 数据框中分类特征的计数级别