Hallo zusammen,
ich versuche mich gerade an einer eigenen Apple TV App, soweit klappt es ganz gut, aber aktuell hänge ich am Aussehen der Kategorien bzw. der Auswahl-Menüs.
Anbei ein Screenshot wie es jetzt aussieht:
Bildschirmfoto 2025-01-22 um 21.10.18.png
Das grün und den Rahmen habe ich derzeit mit Absicht eingefüllt damit ich sehe, was wo ist, denn ich möchte eigentlich, dass der graue Balken weg ist (oder ist dieser der "Hauptbalken"?) und der pinke Balken inkl. Rahmen ist nur ein Design-Element was wenn dann entfernt werden kann? Denn ich möchte, dass es so "Original" aussieht:
Bildschirmfoto 2025-01-22 um 21.13.56.png
Anbei der Code:
Alles anzeigen
Danke schon mal!
Edit:
Ich habe den Code jetzt mal angepasst, aber es passt noch nicht so ganz, wenn eine Kategorie nicht ausgewählt ist, dann ist diese schwarz und nicht wie im Original grau.
Simulator Screenshot - Apple TV 4K (3rd generation) - 2025-01-22 at 21.45.02.png
Hier der Code:
Alles anzeigen
Edit:
Ich bekomme es einfach nicht hin. Jetzt habe ich zwar den nicht ausgewählten Bereich sichtbar, aber der doofe große graue Balken ist wieder da
Bildschirmfoto 2025-01-22 um 21.48.26.png
Hier der Code:
Alles anzeigen
ich versuche mich gerade an einer eigenen Apple TV App, soweit klappt es ganz gut, aber aktuell hänge ich am Aussehen der Kategorien bzw. der Auswahl-Menüs.
Anbei ein Screenshot wie es jetzt aussieht:
Bildschirmfoto 2025-01-22 um 21.10.18.png
Das grün und den Rahmen habe ich derzeit mit Absicht eingefüllt damit ich sehe, was wo ist, denn ich möchte eigentlich, dass der graue Balken weg ist (oder ist dieser der "Hauptbalken"?) und der pinke Balken inkl. Rahmen ist nur ein Design-Element was wenn dann entfernt werden kann? Denn ich möchte, dass es so "Original" aussieht:
Bildschirmfoto 2025-01-22 um 21.13.56.png
Anbei der Code:
Quellcode
- struct SettingsCategoryView: View {
- let title: String
- let isSelected: Bool
- var body: some View {
- HStack {
- Text(title)
- .foregroundColor(isSelected ? .black : .white)
- .font(.system(size: 22, weight: .regular))
- .padding(.leading, 20)
- Spacer()
- Image(systemName: "chevron.right")
- .foregroundColor(isSelected ? .black : .gray)
- .padding(.trailing, 20)
- }
- .frame(height: 50) // Einheitliche Höhe für die Kategorien
- .background(Color.pink) // Innerer Hintergrund auf pink gesetzt
- .cornerRadius(10) // Abrundung direkt auf den Hintergrund anwenden
- .overlay(
- RoundedRectangle(cornerRadius: 10)
- .stroke(Color.green, lineWidth: 3) // Äußerer Rahmen auf grün gesetzt
- )
- .padding(.horizontal, 0) // Entferne äußere Ränder
- .background(Color.clear) // Entferne alle anderen Hintergründe
- }
- }
- struct SettingsView_Previews: PreviewProvider {
- static var previews: some View {
- SettingsView()
- }
- }
Danke schon mal!
Edit:
Ich habe den Code jetzt mal angepasst, aber es passt noch nicht so ganz, wenn eine Kategorie nicht ausgewählt ist, dann ist diese schwarz und nicht wie im Original grau.
Simulator Screenshot - Apple TV 4K (3rd generation) - 2025-01-22 at 21.45.02.png
Hier der Code:
Quellcode
- import SwiftUI
- struct SettingsView: View {
- @State private var selectedCategory: String?
- var body: some View {
- NavigationStack {
- ZStack {
- Color.black
- .edgesIgnoringSafeArea(.all)
- VStack(spacing: 0) {
- // Überschrift oben in der Mitte
- Text("Einstellungen")
- .font(.system(size: 40, weight: .semibold))
- .foregroundColor(.white)
- .padding(.top, 30)
- HStack {
- // Linke Seite mit Logo
- VStack {
- Spacer()
- Image(systemName: "applelogo")
- .resizable()
- .scaledToFit()
- .frame(width: 120, height: 120)
- .foregroundColor(.white)
- Spacer()
- }
- .frame(width: UIScreen.main.bounds.width * 0.4)
- // Rechte Seite mit Kategorien
- VStack(spacing: 15) {
- ForEach(categories, id: \.self) { category in
- NavigationLink(
- value: category,
- label: {
- SettingsCategoryView(
- title: category,
- isSelected: selectedCategory == category
- )
- }
- )
- .buttonStyle(PlainButtonStyle())
- }
- }
- .frame(width: UIScreen.main.bounds.width * 0.5)
- }
- }
- }
- .navigationDestination(for: String.self) { value in
- Text("\(value)-Ansicht")
- .font(.title)
- .foregroundColor(.white)
- .navigationTitle(value)
- }
- }
- }
- private var categories: [String] {
- ["Allgemein", "Benutzer:innen und Accounts", "Video und Audio", "Bildschirmschoner", "AirPlay und HomeKit", "Fernbedienungen und Geräte", "Apps", "Netzwerk", "System", "Entwickler"]
- }
- }
- struct SettingsCategoryView: View {
- let title: String
- let isSelected: Bool
- var body: some View {
- HStack {
- Text(title)
- .foregroundColor(.white)
- .font(.system(size: 22, weight: .medium))
- .padding(.leading, 20)
- Spacer()
- Image(systemName: "chevron.right")
- .foregroundColor(.gray)
- .padding(.trailing, 20)
- }
- .frame(height: 50) // Einheitliche Höhe für die Kategorien
- .background(isSelected ? Color.gray.opacity(0.3) : Color.clear) // Hervorhebung des ausgewählten Elements
- .cornerRadius(8) // Abgerundete Ecken
- .scaleEffect(isSelected ? 1.05 : 1.0) // Fokus-Animation
- .animation(.easeInOut, value: isSelected)
- }
- }
- struct SettingsView_Previews: PreviewProvider {
- static var previews: some View {
- SettingsView()
- }
- }
Ich bekomme es einfach nicht hin. Jetzt habe ich zwar den nicht ausgewählten Bereich sichtbar, aber der doofe große graue Balken ist wieder da

Bildschirmfoto 2025-01-22 um 21.48.26.png
Hier der Code:
Quellcode
- import SwiftUI
- struct SettingsView: View {
- @State private var selectedCategory: String?
- var body: some View {
- NavigationStack {
- ZStack {
- Color.black
- .edgesIgnoringSafeArea(.all)
- VStack(spacing: 0) {
- // Überschrift oben in der Mitte
- Text("Einstellungen")
- .font(.system(size: 40, weight: .semibold))
- .foregroundColor(.white)
- .padding(.top, 30)
- HStack {
- // Linke Seite mit Logo
- VStack {
- Spacer()
- Image(systemName: "applelogo")
- .resizable()
- .scaledToFit()
- .frame(width: 120, height: 120)
- .foregroundColor(.white)
- Spacer()
- }
- .frame(width: UIScreen.main.bounds.width * 0.4)
- // Rechte Seite mit Kategorien
- VStack(spacing: 15) {
- ForEach(categories, id: \.self) { category in
- NavigationLink(
- value: category,
- label: {
- SettingsCategoryView(
- title: category,
- isSelected: selectedCategory == category
- )
- }
- )
- .buttonStyle(PlainButtonStyle())
- }
- }
- .frame(width: UIScreen.main.bounds.width * 0.5)
- }
- }
- }
- .navigationDestination(for: String.self) { value in
- Text("\(value)-Ansicht")
- .font(.title)
- .foregroundColor(.white)
- .navigationTitle(value)
- }
- }
- }
- private var categories: [String] {
- ["Allgemein", "Benutzer:innen und Accounts", "Video und Audio", "Bildschirmschoner", "AirPlay und HomeKit", "Fernbedienungen und Geräte", "Apps", "Netzwerk", "System", "Entwickler"]
- }
- }
- struct SettingsCategoryView: View {
- let title: String
- let isSelected: Bool
- var body: some View {
- HStack {
- Text(title)
- .foregroundColor(.white)
- .font(.system(size: 22, weight: .medium))
- .padding(.leading, 20)
- Spacer()
- Image(systemName: "chevron.right")
- .foregroundColor(.gray)
- .padding(.trailing, 20)
- }
- .frame(height: 50) // Einheitliche Höhe für die Kategorien
- .background(isSelected ? Color.gray.opacity(0.3) : Color.gray.opacity(0.15)) // Hintergrundfarbe für ausgewählte und nicht ausgewählte Kategorien
- .cornerRadius(8) // Abgerundete Ecken
- .scaleEffect(isSelected ? 1.05 : 1.0) // Fokus-Animation
- .animation(.easeInOut, value: isSelected)
- }
- }
- struct SettingsView_Previews: PreviewProvider {
- static var previews: some View {
- SettingsView()
- }
- }
Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von iBoard ()