蓝色的水瓶 2024-10-23 20:44 采纳率: 0%
浏览 5
已结题

有没有人知道这是什么原因造成的吗

有没有人知道这是什么原因造成的吗?

img

img

struct ContentView: View {
    @AppStorage("language") var language: String = "en"
    @StateObject private var dataManager = DataManager()
    @State private var selectedTab: Tab = .creed
    @State private var activeSheet: ActiveSheet?
    
    // 用于播放音效的音频播放器
    @State private var audioPlayer: AVAudioPlayer?

    var body: some View {
        NavigationView {
            TabView(selection: $selectedTab) {
                FinanceView(transactions: $dataManager.transactions)
                    .tabItem {
                        Image(systemName: "dollarsign.circle")
                        Text(localizedString(for: "Finance"))
                    }
                    .tag(Tab.finance)
                
                CreedView(creeds: $dataManager.creeds)
                    .tabItem {
                        Image(systemName: "tag")
                        Text(localizedString(for: "Creed"))
                    }
                    .tag(Tab.creed)
                
                CareerView(careers: $dataManager.careers, onEdit: { career in
                    activeSheet = .editEntry(entryType: .career, career: career)
                })
                .tabItem {
                    Image(systemName: "location.north.line")
                    Text(localizedString(for: "Career"))
                }
                .tag(Tab.career)
            }
            .onChange(of: selectedTab, initial: false) { newValue, _ in
                // 触发振动反馈
                let impactFeedback = UIImpactFeedbackGenerator(style: .medium)
                impactFeedback.impactOccurred()

                // 播放点击声音
                AudioServicesPlaySystemSound(1104)  // 1104 是系统点击声音
            }
            .safeAreaInset(edge: .top) {
                Color.clear.frame(height: 100) // 保留顶部的安全区域
            }




            .toolbar {
                ToolbarItem(placement: .navigationBarLeading) {
                    Text("SigmaSelf")
                        .font(.title)
                        .bold()
                        .frame(maxWidth: .infinity, alignment: .leading)
                }
                ToolbarItemGroup(placement: .navigationBarTrailing) {
                    NavigationLink(destination: LanguageSettingsView()) {
                        Image(systemName: "globe.europe.africa")
                    }
                    Button(action: {
                        activeSheet = .addEntry(entryType: selectedTab)
                    }) {
                        Image(systemName: "plus")
                    }
                }
            }
            .sheet(item: $activeSheet) { item in
                switch item {
                case .addEntry(let entryType):
                    AddEntryView(dataManager: dataManager, selectedTab: $selectedTab, initialEntryType: entryType)
                        .presentationDetents([.fraction(0.8)])
                case .editEntry(let entryType, let career):
                    AddEntryView(dataManager: dataManager, selectedTab: $selectedTab, initialEntryType: entryType, careerToEdit: career)
                        .presentationDetents([.fraction(0.8)])
                }
            }
        }
        .onDisappear {
            dataManager.saveAll()
        }
    }

    func generateHapticFeedback() {
        // 播放振动
        let generator = UIImpactFeedbackGenerator(style: .medium)
        generator.prepare() // 准备反馈生成器
        generator.impactOccurred() // 触发振动
        
        // 播放音效
        playSoundEffect(named: "clickSound") // 确保你有这个音效文件
    }

    private func playSoundEffect(named name: String) {
        guard let url = Bundle.main.url(forResource: name, withExtension: "mp3") else {
            print("音效文件未找到")
            return
        }
        
        do {
            audioPlayer = try AVAudioPlayer(contentsOf: url)
            audioPlayer?.play()
        } catch {
            print("音效播放出错:\(error.localizedDescription)")
        }
    }

    func localizedString(for key: String) -> String {
        let zhDict = ["Finance": "财务", "Creed": "信条", "Career": "事业"]
        let zhHKDict = ["Finance": "財務", "Creed": "信條", "Career": "事業"]
        let enDict = ["Finance": "Finance", "Creed": "Creed", "Career": "Career"]
        
        switch language {
        case "zh":
            return zhDict[key] ?? key
        case "zh-HK":
            return zhHKDict[key] ?? key
        default:
            return enDict[key] ?? key
        }
    }
}


这是我content视图的代码块

  • 写回答

1条回答 默认 最新

  • 无疆76 2024-10-23 20:45
    关注

    以下回复参考:皆我百晓生券券喵儿等免费微信小程序作答:

    从你给出的代码片段来看,并没有直接显示任何错误或问题。这段代码看起来是一个SwiftUI的视图代码,用于创建一个包含多个标签页的导航视图。每个标签页对应不同的内容,如财务、信条和事业。

    然而,你提到了“图1”、“图2”、“图3”和“图4”的内容,但没有提供具体的上下文或问题描述。你能详细描述一下遇到的问题或错误消息吗?或者你希望得到的帮助是什么?是运行时的错误、代码的某个部分不工作、还是性能问题等等?这样我才能更好地帮助你解决问题。

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 6月14日
  • 创建了问题 10月23日