SettingsRowView.swift 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. import SwiftUI
  2. struct SettingsRowView: View {
  3. let imageName: String
  4. let title: String
  5. let tint: Color
  6. let spacing: CGFloat?
  7. let font: CGFloat?
  8. init(imageName: String, title: String, tint: Color, spacing: CGFloat? = 12, font: CGFloat? = 35) {
  9. self.imageName = imageName
  10. self.title = title
  11. self.tint = tint
  12. self.spacing = spacing
  13. self.font = font
  14. }
  15. var body: some View {
  16. HStack(spacing: spacing ?? 12, content: {
  17. Image(systemName: imageName)
  18. .imageScale(.small)
  19. .font(.system(size: font ?? 35))
  20. .foregroundColor(tint)
  21. Text(title)
  22. .font(.subheadline)
  23. .foregroundStyle(.primary)
  24. })
  25. }
  26. }
  27. struct SettingsRowViewCustomImage: View {
  28. let imageName: String
  29. let title: String
  30. let frame: CGFloat?
  31. let spacing: CGFloat?
  32. init(imageName: String, title: String, frame: CGFloat? = 35, spacing: CGFloat? = 12) {
  33. self.imageName = imageName
  34. self.title = title
  35. self.frame = frame
  36. self.spacing = spacing
  37. }
  38. var body: some View {
  39. HStack(spacing: spacing ?? 12, content: {
  40. Image(imageName)
  41. .resizable()
  42. .aspectRatio(contentMode: .fit)
  43. .frame(width: frame ?? 35, height: frame ?? 35)
  44. Text(title)
  45. .font(.subheadline)
  46. .foregroundStyle(.primary)
  47. })
  48. }
  49. }