Swift SwiftUI CoreData 过滤数据 2

预览


Code

swift 复制代码
import SwiftUI
import CoreData

struct HomeSearchView: View {
    @Environment(\.dismiss) var dismiss
    
    @State private var search_value = ""

    @FetchRequest(
        entity: Bill.entity(),
        sortDescriptors: [
            NSSortDescriptor(keyPath: \Bill.c_at, ascending: false)
        ],
        predicate: nil,
        animation: .default
    )
    private var bills_filter: FetchedResults<Bill>
    
    private func SearchByNameOrSurname() {
        let predicate: NSPredicate?
        if !search_value.isEmpty {
            let namePredicate = NSPredicate(format: "name CONTAINS %@", search_value)
            let moneyyPredicate = NSPredicate(format: "money CONTAINS %@", search_value)
            predicate = NSCompoundPredicate(orPredicateWithSubpredicates: [namePredicate, moneyPredicate])
        } else {
            predicate = nil
        }
        bills_filter.nsPredicate = predicate
    }
    
    
    
    var body: some View {
        NavigationStack {
            VStack {
                HStack {
                    HStack {
                        Image(systemName: "magnifyingglass")
                        TextField("分类、金额、备注", text: $search_value)
                            .onChange(of: search_value) { _ in
                                SearchByNameOrSurname()
                            }
                    }
                    
                    Button {
                        search_value = ""
                        dismiss()
                    } label: {
                        Text("取消")
                    }
                }
                
                List {
                    Section(header: Text("匹配条数 \(bills_filter.count)")) {
                        ForEach(bills_filter) { bill in
                            HStack {
                                Text(bill.emoji ?? "Unknown bill emoji")
                                Text(bill.name ?? "Unknown bill name")
                                Spacer()
                                Text("\(bill.moneyy ?? 0.0)")
                            }
                        }
                    }
                }
            }
            .navigationTitle("搜索")
            .navigationBarTitleDisplayMode(.inline)
        }
    }
}

struct HomeSearchView_Previews: PreviewProvider {
    static var previews: some View {
        HomeSearchView()
    }
}

喜欢或对你有帮助,点个赞吧,自己先点个嘿嘿。
有错误或者疑问还请评论指出。
我的个人网站 点击访问 hongweizhu.com

END

相关推荐
初级代码游戏1 小时前
iOS开发 SwitftUI 13:提示、弹窗、上下文菜单
ios·swiftui·swift·弹窗·消息框
zhyongrui4 小时前
托盘删除手势与引导体验修复:滚动冲突、画布消失动画、气泡边框
ios·性能优化·swiftui·swift
zhangfeng11337 小时前
CSDN星图 支持大模型微调 trl axolotl Unsloth 趋动云 LLaMA-Factory Unsloth ms-swift 模型训练
服务器·人工智能·swift
zhyongrui1 天前
SnipTrip 发热优化实战:从 60Hz 到 30Hz 的性能之旅
ios·swiftui·swift
大熊猫侯佩2 天前
Neo-Cupertino 档案:撕开 Actor 的伪装,回归 Non-Sendable 的暴力美学
swift·observable·actor·concurrency·sendable·nonsendable·data race
大熊猫侯佩2 天前
赛博深渊(上):用 Apple Foundation Models 提炼“禁忌知识”的求生指南
llm·swiftui·大语言模型·foundationmodel·apple ai·apple 人工智能·summarize
zhyongrui3 天前
SwiftUI 光晕动画性能优化:消除托盘缩放卡顿的实战方案
ios·性能优化·swiftui
2501_915921433 天前
在没有源码的前提下,怎么对 Swift 做混淆,IPA 混淆
android·开发语言·ios·小程序·uni-app·iphone·swift
00后程序员张4 天前
对比 Ipa Guard 与 Swift Shield 在 iOS 应用安全处理中的使用差异
android·开发语言·ios·小程序·uni-app·iphone·swift
大熊猫侯佩4 天前
星际穿越:SwiftUI 如何让 ForEach 遍历异构数据(Heterogeneous)集合
swiftui·swift·遍历·foreach·any·异构集合·heterogeneous