Skip to content

i-stack/STBaseProject

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

462 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

STBaseProject

Version License Platform Swift

STBaseProject 是一个功能强大的 iOS 基础组件库,提供了丰富的 UI 组件和工具类,帮助开发者快速构建高质量的 iOS 应用。

📋 目录

🚀 安装方式

CocoaPods

Podfile 中添加:

pod 'STBaseProject', '~> 1.1.5'

然后运行:

pod install

Swift Package Manager

在 Xcode 中添加包依赖:

  1. 打开 Xcode 项目
  2. 选择 File > Add Package Dependencies...
  3. 输入仓库 URL:https://github.com/i-stack/STBaseProject.git
  4. 选择版本 1.1.5 或更高版本并添加到项目

或在 Package.swift 中:

dependencies: [
    .package(url: "https://github.com/i-stack/STBaseProject.git", from: "1.1.5")
]

手动集成

  1. 下载项目源码
  2. Sources 文件夹拖入你的项目
  3. 确保所有文件都添加到 target 中

⚡ 快速开始

基础配置

import STBaseProject

// 在 AppDelegate 或 SceneDelegate 中配置
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
    
    // 设置默认配置(推荐)
    STBaseConfig.shared.st_setDefaultConfig()
    
    // 或者使用 iPhone X 设计基准
    STBaseConfig.shared.st_configForIPhoneX()
    
    return true
}

基础视图控制器

import STBaseProject

class MyViewController: STBaseViewController {
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        // 设置导航栏样式
        st_setNavigationBarStyle(.light)
        st_setTitle("我的页面")
        
        // 显示导航栏按钮
        st_showNavBtnType(type: .showLeftBtn)
        st_setLeftButton(image: UIImage(named: "back_icon"))
    }
    
    override func st_leftBarBtnClick() {
        // 自定义返回按钮点击事件
        navigationController?.popViewController(animated: true)
    }
}

自定义按钮

import STBaseProject

let button = STBtn()
button.setTitle("按钮", for: .normal)
button.setImage(UIImage(named: "icon"), for: .normal)

// 设置图片在上、文字在下的布局
button.st_setImageTopTitleBottom(spacing: 8)

// 设置圆角
button.st_roundedButton(cornerRadius: 8)

颜色工具

import STBaseProject

// 从十六进制创建颜色
let color = UIColor.st_color(hexString: "#FF6B6B")

// 支持暗黑模式的动态颜色
let dynamicColor = UIColor.st_dynamicColor(lightHex: "#FFFFFF", darkHex: "#000000")

// 从 RGB 创建颜色
let rgbColor = UIColor.st_color(red: 255, green: 107, blue: 107)

HUD 提示

import STBaseProject

// 显示成功提示
STHUD.showSuccess("操作成功")

// 显示加载中
STHUD.showLoading("加载中...")

// 显示错误提示
STHUD.showError("操作失败")

// 隐藏 HUD
STHUD.hide()

📁 目录介绍

STAnimation - 动画组件

  • STBaseAnimation.swift - 基础动画类
  • STImageViewAnimation.swift - 图片视图动画
  • STMultiImageViewAnimation.swift - 多图片视图动画

STBaseModel - 基础模型

  • STBaseModel.swift - 基础数据模型类

STBaseView - 基础视图

  • STBaseView.swift - 基础视图类

STBaseViewController - 基础控制器

  • STBaseViewController.swift - 基础视图控制器,提供自定义导航栏

STBaseViewModel - 基础视图模型

  • STBaseViewModel.swift - 基础视图模型类

STConfig - 配置管理

  • STBaseConfig.swift - 基础配置管理类
  • STDeviceAdapter.swift - 设备适配器

STCore - 核心工具

  • STColor.swift - 颜色工具类
  • STData.swift - 数据处理工具
  • STDate.swift - 日期处理工具
  • STDeviceInfo.swift - 设备信息工具
  • STDictionary.swift - 字典工具
  • STFileManager.swift - 文件管理工具
  • STFontManager.swift - 字体管理工具
  • STHTTPSession.swift - 网络请求工具
  • STJSONValue.swift - JSON 处理工具
  • STLocalizableProtocol.swift - 本地化协议
  • STLocalizationManager.swift - 本地化管理器
  • STLogManager.swift - 日志管理工具
  • STNetworkMonitoring.swift - 网络监控工具
  • STNetworkTypes.swift - 网络类型定义
  • STPoint.swift - 点坐标工具
  • STPredicateCheck.swift - 谓词检查工具
  • STSSLPinningConfig.swift - SSL 证书锁定配置
  • STString.swift - 字符串工具
  • STThreadSafe.swift - 线程安全工具
  • STTimer.swift - 定时器工具
  • STWindowManager.swift - 窗口管理工具

STDialog - 对话框组件

  • STHUD.swift - HUD 提示组件
  • STProgressHUD.swift - 进度 HUD 组件
  • STProgressView.swift - 进度视图组件

STSecurity - 安全组件

  • STEncrypt.swift - 加密工具
  • STKeychainHelper.swift - Keychain 助手
  • STNetworkCrypto.swift - 网络加密工具
  • STNetworkSecurityConfig.swift - 网络安全配置
  • STNetworkSecurityDetector.swift - 网络安全检测器

STTabBar - 标签栏组件

  • STCustomTabBar.swift - 自定义标签栏
  • STCustomTabBarController.swift - 自定义标签栏控制器
  • STCustomUITabBarController.swift - 自定义 UI 标签栏控制器
  • STTabBarItemModel.swift - 标签栏项模型
  • STTabBarItemView.swift - 标签栏项视图
  • STTabBarMixedSupport.swift - 标签栏混合支持

STUI - UI 组件

  • STAlertController.swift - 自定义警告控制器
  • STBaseViewControllerLocalization.swift - 基础控制器本地化
  • STBaseWKViewController.swift - 基础 WebKit 控制器
  • STBtn.swift - 自定义按钮组件
  • STGradientLabel.swift - 渐变标签组件
  • STIBInspectable.swift - IB 可检查属性
  • STLabel.swift - 自定义标签组件
  • STLogView.swift - 日志视图组件
  • STTextField.swift - 自定义文本输入框
  • STVerificationCodeBtn.swift - 验证码按钮组件
  • STView.swift - 自定义视图组件

🎯 主要功能

🎨 UI 组件

  • 自定义导航栏 - 支持多种样式和自定义配置
  • 自定义按钮 - 支持图片文字多种布局方式
  • HUD 提示 - 丰富的提示组件,支持多种类型
  • 标签栏 - 自定义标签栏组件
  • 渐变标签 - 支持渐变效果的标签组件

🛠 工具类

  • 颜色工具 - 支持十六进制、RGB、暗黑模式等
  • 字符串工具 - 丰富的字符串处理方法
  • 日期工具 - 日期格式化和计算
  • 网络工具 - HTTP 请求、网络监控
  • 文件管理 - 文件操作和存储
  • 设备信息 - 获取设备相关信息

🔒 安全功能

  • 加密工具 - 数据加密和解密
  • Keychain 管理 - 安全存储敏感信息
  • 网络安全 - SSL 证书锁定、安全检测

🌐 国际化支持

  • 本地化管理 - 多语言支持
  • 动态语言切换 - 运行时语言切换

📱 设备适配

  • 屏幕适配 - 支持不同屏幕尺寸
  • 安全区域适配 - 支持刘海屏等特殊设备
  • 字体适配 - 动态字体大小调整

💡 使用示例

网络请求

import STBaseProject

// GET 请求
STHTTPSession.shared.st_get(url: "https://api.example.com/users") { result in
    switch result {
    case .success(let data):
        print("请求成功: \(data)")
    case .failure(let error):
        print("请求失败: \(error)")
    }
}

// POST 请求
let parameters = ["name": "张三", "age": 25]
STHTTPSession.shared.st_post(url: "https://api.example.com/users", parameters: parameters) { result in
    // 处理结果
}

本地化

import STBaseProject

// 设置本地化
STLocalizationManager.shared.st_setLanguage("zh-Hans")

// 获取本地化字符串
let localizedString = "hello_world".localized

文件操作

import STBaseProject

// 保存数据到文件
let data = "Hello World".data(using: .utf8)!
STFileManager.shared.st_saveData(data, toFile: "test.txt")

// 读取文件数据
if let fileData = STFileManager.shared.st_readData(fromFile: "test.txt") {
    let content = String(data: fileData, encoding: .utf8)
    print("文件内容: \(content ?? "")")
}

📋 系统要求

  • iOS 13.0+
  • Xcode 12.0+
  • Swift 5.0+

📄 许可证

本项目采用 MIT 许可证。详情请参阅 LICENSE 文件。

🤝 贡献

欢迎提交 Issue 和 Pull Request 来帮助改进这个项目。

📞 联系方式

如有问题或建议,请通过以下方式联系:


⭐ 如果这个项目对你有帮助,请给它一个星标!

About

Collect common classes in the development process

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages