You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
v504 7353270517
Refactor ContentView to enhance UI and add language selection; update ScannerView logging to use structured logging; localize new strings for app title, description, and language selection.
2 months ago
MyQrCode Refactor ContentView to enhance UI and add language selection; update ScannerView logging to use structured logging; localize new strings for app title, description, and language selection. 2 months ago
MyQrCode.xcodeproj 增加多国语言 2 months ago
MyQrCodeTests Initial Commit 2 months ago
MyQrCodeUITests Initial Commit 2 months ago
README.md first 2 months ago

README.md

MyQrCode - SwiftUI 版本

项目概述

这是一个使用 SwiftUI 构建的条码扫描器应用,支持二维码和多种条形码格式,已经从原来的 UIKit 版本完全转换为 SwiftUI。

主要变化

从 UIKit 转换为 SwiftUI

  • ScannerViewController.swiftScannerView.swift
    • 使用 @StateObject 管理扫描器状态
    • 使用 UIViewRepresentable 包装相机预览层
    • 采用 MVVM 架构模式

新特性

  1. 现代化的 UI 设计

    • 扫描框覆盖层,提供视觉引导
    • 美观的按钮和文本样式
    • 响应式布局
  2. 改进的状态管理

    • 使用 @Published 属性包装器
    • 通过通知中心传递扫描结果
    • 更好的错误处理
  3. 用户体验优化

    • 扫描成功后的震动反馈
    • 清晰的扫描指导文本
    • 优雅的模态展示
  4. 多格式条码支持

    • 二维码 (QR Code)
    • EAN-8 和 EAN-13 条形码
    • Code 128 和 Code 39 条形码
    • UPC-E 条形码
    • PDF417 和 Aztec 码
  5. 微信风格扫描界面

    • 扫描线动画效果
    • 检测到条码时短暂暂停预览
    • 条码位置中心点标记(绿色圆圈)
    • 点击标记直接选择条码
    • 支持重新扫描

文件结构

MyQrCode/
├── ScannerView.swift          # 新的 SwiftUI 扫描器视图
├── ContentView.swift          # 更新的主内容视图
├── MyQrCodeApp.swift         # 应用入口点
└── ...其他文件

使用方法

  1. 启动应用后,点击"开始扫描"按钮
  2. 将二维码或条形码放入扫描框内
  3. 扫描成功后:
    • 短暂暂停预览并显示条码覆盖层
    • 在相机预览上显示条码位置标记(绿色圆圈)
  4. 在预览暂停时:
    • 在相机预览上显示条码位置标记(绿色圆圈)
    • 单个条码1秒后自动显示结果
    • 多个条码:点击绿色标记选择要解码的条码
    • 点击"重新扫描"继续扫描
  5. 单个条码自动选择,多个条码手动选择
  6. 可以重复扫描新的条码

技术特点

  • SwiftUI: 现代化的声明式 UI 框架
  • AVFoundation: 相机和条码扫描功能
  • MVVM 架构: 清晰的代码分离和状态管理
  • 通知中心: 组件间的松耦合通信

兼容性

  • iOS 14.0+
  • Xcode 12.0+
  • Swift 5.3+

注意事项

  • 需要在真机上测试相机功能
  • 确保在 Info.plist 中添加相机权限描述
  • 扫描器支持屏幕旋转和尺寸变化
  • 条码位置标记会自动适应屏幕变化