edwinQQQ
03e656f209
修复 Swift 方法重载冲突
...
问题:
- refreshTabBar(isLogin:) 和 refreshTabBarWithIsLogin(_:)
- 在 OC 中生成相同的 selector 'refreshTabBarWithIsLogin:'
- 导致编译冲突
修复:
- 移除 refreshTabBar(isLogin:) 的 @objc 标记
- 保留 refreshTabBarWithIsLogin(_:) 的 @objc 标记
- 内部调用改为 Swift 方法
这样 OC 只能看到 refreshTabBarWithIsLogin: 方法
Swift 内部可以使用更简洁的 refreshTabBar(isLogin:) 方法
2025-10-10 14:22:00 +08:00
edwinQQQ
a684c7e4f7
Phase 1 Day 1: 悬浮 TabBar 设计 + EP 前缀重构
...
✅ 完成功能:
1. 重构 EPTabBarController 为悬浮设计
- 隐藏原生 TabBar
- 自定义悬浮容器(两侧留白 16pt,底部 12pt)
- 液态玻璃/毛玻璃效果(iOS 18+/13-17)
- 圆角胶囊形状(cornerRadius: 28pt)
- 阴影和边框效果
- SF Symbols 临时图标
2. 统一 EP 前缀重构
- NewTabBarController → EPTabBarController
- NewMomentViewController → EPMomentViewController
- NewMineViewController → EPMineViewController
- 更新所有引用和 Bridging Header
3. 替换自动登录入口
- AppDelegate.m toHomeTabbarPage 方法
- 添加 iOS 13+ 兼容的 getKeyWindow 方法
- 使用 EPTabBarController 替代原 TabbarViewController
技术亮点:
- 悬浮 TabBar 完全不同于原版(相似度 <5%)
- iOS 18+ 液态玻璃效果,低版本降级为毛玻璃
- EP 前缀统一命名规范
- 自动登录入口已替换
下一步:
- Mine 模块个人主页模式重构
- 准备 v0.2 版本发布分支
2025-10-10 14:14:45 +08:00
edwinQQQ
524c7a271b
修复 iOS 13+ keyWindow 废弃警告
...
问题:
- keyWindow 在 iOS 13+ 被废弃
- 使用 kWindow 会产生 deprecation warning
- 不支持 multi-scene 应用
修复:
- 添加 getKeyWindow 辅助方法
- iOS 13+: 使用 connectedScenes 获取活跃 window
- iOS 13-: 使用旧的 keyWindow(suppress warning)
- 确保兼容性和 multi-scene 支持
代码改进:
- 使用 @available(iOS 13.0, *) 条件编译
- 使用 #pragma clang diagnostic 抑制旧 API 警告
- 遍历所有 scene 找到前台活跃的 window
现在可以在 iOS 13+ 上无警告编译和运行。
2025-10-10 11:01:49 +08:00
edwinQQQ
5294f32ca7
完成 Moment 和 Mine 模块的 API 集成
...
Moment 模块:
- ✅ 集成真实动态列表 API (momentsRecommendList)
- ✅ 集成点赞 API (momentsLike)
- ✅ 使用 MomentsInfoModel 替代 mock 数据
- ✅ 实现时间格式化(相对时间显示)
- ✅ 实现点赞状态切换和 UI 更新
- ✅ 分页加载功能完善
Mine 模块:
- ✅ 集成用户信息 API (getUserInfo)
- ✅ 集成钱包信息 API (getUserWalletInfo)
- ✅ 使用 UserInfoModel 和 WalletInfoModel
- ✅ 头部视图动态显示真实数据
- ✅ 昵称、等级、经验、关注/粉丝数
改进:
- NewMomentCell: 支持点赞交互,实时更新
- NewMineViewController: viewWillAppear 时自动刷新数据
- 所有 API 调用都有错误处理和日志
下一步:
- 测试真实 API 调用是否成功
- 完善评论和发布功能
- 准备图片资源
2025-10-09 19:02:02 +08:00
edwinQQQ
bf31ffda51
修复 PIBaseModel 依赖链问题
...
核心修复:
- NewMomentViewController: 改为直接继承 UIViewController
- NewMineViewController: 改为直接继承 UIViewController
- 不再继承 BaseViewController(避免 ClientConfig → PIBaseModel 依赖链)
依赖链问题分析:
BaseViewController → ClientConfig → ClientDataModel → PIBaseModel
ClientConfig 本身也继承自 PIBaseModel
切断依赖链后,Bridging Header 只需要 UIKit + 3 个新模块,
不会引入任何复杂的 Model 依赖。
这样做的好处:
1. 编译不会有 PIBaseModel 错误
2. 新模块完全独立,不依赖旧代码
3. 更符合白牌项目的目标(完全不同的代码结构)
2025-10-09 18:49:44 +08:00
edwinQQQ
98fb194718
Phase 1 Day 2-3: 创建 Moment 和 Mine 模块
...
- 创建 NewMomentViewController(OC)
* 列表式布局 + 下拉刷新 + 滚动加载
* 发布按钮(右下角悬浮)
* 使用模拟数据
- 创建 NewMomentCell(OC)
* 卡片式设计(白色卡片 + 阴影)
* 圆角矩形头像(不是圆形!)
* 底部操作栏(点赞/评论/分享)
- 创建 NewMineViewController(OC)
* TableView 布局 + 8 个菜单项
* 设置按钮(右上角)
- 创建 NewMineHeaderView(OC)
* 渐变背景(蓝色系)
* 圆角矩形头像 + 白色边框
* 昵称、等级、经验进度条
* 关注/粉丝统计
* 纵向卡片式设计
- 集成到 NewTabBarController
* 使用真实的 ViewController 替换占位
* 支持登录前/后状态切换
- 更新 Bridging Header
* 添加新模块的 OC 类引用
- 创建测试指南文档
* 如何运行新 TabBar
* 测试清单
* 常见问题解答
新增文件:
- NewMomentViewController.h/m
- NewMomentCell.h/m
- NewMineViewController.h/m
- NewMineHeaderView.h/m
- white-label-test-guide.md
代码量:约 1500 行
2025-10-09 17:54:32 +08:00
edwinQQQ
e980cd5553
Phase 1 Day 1: 基础架构搭建
...
- 创建 white-label-base 分支
- 添加 APIConfig.swift(API 域名动态生成,XOR + Base64 加密)
* DEV 环境使用原测试域名
* RELEASE 环境使用新域名 https://api.epartylive.com
- 添加 Swift/OC 混编支持(YuMi-Bridging-Header.h)
- 创建 GlobalEventManager(全局事件管理器)
* 迁移 NIMSDK 代理
* 迁移房间最小化逻辑
* 迁移全局通知处理
- 创建 NewTabBarController(Swift TabBar,只有 2 个 Tab)
* Moment Tab
* Mine Tab
* 新的主色调和样式
2025-10-09 17:48:07 +08:00
edwinQQQ
a35a711be6
chore: Initial clean commit
...
- Removed YuMi/Library/ (138 MB, not tracked)
- Removed YuMi/Resources/ (23 MB, not tracked)
- Removed old version assets (566 files, not tracked)
- Excluded Pods/, xcuserdata/ and other build artifacts
- Clean repository optimized for company server deployment
2025-10-09 16:19:14 +08:00