STBaseProject
Collect common classes in the development process
Install / Use
/learn @i-stack/STBaseProjectREADME
STBaseProject
STBaseProject 是一个功能强大的 iOS 基础组件库,提供了丰富的 UI 组件和工具类,帮助开发者快速构建高质量的 iOS 应用。
📋 目录
🚀 安装方式
CocoaPods
在 Podfile 中添加:
pod 'STBaseProject', '~> 1.1.5'
然后运行:
pod install
Swift Package Manager
在 Xcode 中添加包依赖:
- 打开 Xcode 项目
- 选择
File>Add Package Dependencies... - 输入仓库 URL:
https://github.com/i-stack/STBaseProject.git - 选择版本
1.1.5或更高版本并添加到项目
或在 Package.swift 中:
dependencies: [
.package(url: "https://github.com/i-stack/STBaseProject.git", from: "1.1.5")
]
手动集成
- 下载项目源码
- 将
Sources文件夹拖入你的项目 - 确保所有文件都添加到 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 来帮助改进这个项目。
📞 联系方式
如有问题或建议,请通过以下方式联系:
- 提交 Issue: GitHub Issues
- 邮箱: songshoubing7664@163.com
⭐ 如果这个项目对你有帮助,请给它一个星标!
Related Skills
node-connect
341.0kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
84.4kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
341.0kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
commit-push-pr
84.4kCommit, push, and open a PR
