Fix accent color circles not showing on iOS 15
This commit is contained in:
parent
af8a9faaeb
commit
37847a2f9f
|
@ -29,6 +29,21 @@ struct AppearancePrefsView : View {
|
|||
Preferences.shared.avatarStyle = $0 ? .circle : .roundRect
|
||||
}
|
||||
|
||||
private let accentColorsAndImages: [(Preferences.AccentColor, UIImage?)] = Preferences.AccentColor.allCases.map { color in
|
||||
var image: UIImage?
|
||||
if let color = color.color {
|
||||
if #available(iOS 16.0, *) {
|
||||
image = UIImage(systemName: "circle.fill")!.withTintColor(color, renderingMode: .alwaysTemplate).withRenderingMode(.alwaysOriginal)
|
||||
} else {
|
||||
image = UIGraphicsImageRenderer(size: CGSize(width: 20, height: 20)).image { context in
|
||||
color.setFill()
|
||||
context.cgContext.fillEllipse(in: CGRect(x: 0, y: 0, width: 20, height: 20))
|
||||
}
|
||||
}
|
||||
}
|
||||
return (color, image)
|
||||
}
|
||||
|
||||
var body: some View {
|
||||
List {
|
||||
themeSection
|
||||
|
@ -48,12 +63,12 @@ struct AppearancePrefsView : View {
|
|||
}
|
||||
|
||||
Picker(selection: accentColor, label: Text("Accent Color")) {
|
||||
ForEach(Preferences.AccentColor.allCases, id: \.rawValue) { color in
|
||||
ForEach(accentColorsAndImages, id: \.0.rawValue) { (color, image) in
|
||||
HStack {
|
||||
Text(color.name)
|
||||
if let color = color.color {
|
||||
if let image {
|
||||
Spacer()
|
||||
Image(uiImage: UIImage(systemName: "circle.fill")!.withTintColor(color, renderingMode: .alwaysTemplate).withRenderingMode(.alwaysOriginal))
|
||||
Image(uiImage: image)
|
||||
}
|
||||
}
|
||||
.tag(color)
|
||||
|
|
Loading…
Reference in New Issue