edwinQQQ
c0441f7853
refactor: 更新 EPProgressHUD 和 YUMIMacroUitls.h 以兼容 iOS 13+
...
主要变更:
1. 在 EPProgressHUD.swift 中引入 keyWindow 的兼容获取方法,替换原有的 UIApplication.shared.keyWindow 调用。
2. 在 YUMIMacroUitls.h 中添加状态栏高度和 keyWindow 的兼容宏定义,确保在 iOS 13+ 中正确获取相关窗口和状态栏信息。
此更新旨在提升代码的兼容性和稳定性,确保在新版本的 iOS 中正常运行。
2025-10-11 17:36:28 +08:00
edwinQQQ
7626eb8351
feat: 添加动态发布功能及相关文档
...
主要变更:
1. 新增 EPImageUploader.swift 和 EPProgressHUD.swift,提供图片批量上传和进度显示功能。
2. 新建 EPMomentAPISwiftHelper.swift,封装动态 API 的 Swift 版本。
3. 更新 EPMomentPublishViewController,集成新上传功能并实现发布成功通知。
4. 创建多个文档,包括实施报告、检查清单和快速使用指南,详细记录功能实现和使用方法。
5. 更新 Bridging Header,确保 Swift 和 Objective-C 代码的互操作性。
此功能旨在提升用户体验,简化动态发布流程,并提供清晰的文档支持。
2025-10-11 17:16:30 +08:00
edwinQQQ
ceaeb5c951
feat: 添加 EPMomentPublishViewController 以支持图文发布功能
...
主要变更:
1. 新增 EPMomentPublishViewController.h 和 EPMomentPublishViewController.m 文件,提供图文发布页面的 UI 和逻辑。
2. 实现了发布按钮、文本输入框、图片选择功能,支持最多选择 9 张图片。
3. 集成了 TZImagePickerController 以便于用户选择图片。
4. 更新了 EPMomentViewController,添加了跳转到发布页面的逻辑。
此功能旨在提升用户体验,简化图文发布流程。
2025-10-10 19:06:06 +08:00
edwinQQQ
e8d59495a4
refactor: 重构 EPMomentViewController,替换 UITableView 为 EPMomentListView
...
主要变更:
1. 移除 UITableView,改为使用 EPMomentListView 以简化数据展示和交互。
2. 添加顶部固定文案 UILabel,提升用户体验。
3. 通过 EPMomentAPIHelper 统一管理 Moments 列表 API 请求,优化数据加载逻辑。
4. 更新 UI 约束,确保布局适配不同屏幕。
此重构旨在提升代码可维护性和用户界面的一致性。
2025-10-10 17:22:39 +08:00
edwinQQQ
8b177e5fad
fix: 消除 TabBar 切换时的页面闪烁问题
...
核心修复:
1. 移除导航栏动画冲突
- 移除 viewWillAppear 中的 navigationBar 隐藏逻辑
- ViewController 未包装在 NavigationController 中,调用导航栏方法会触发冗余动画
2. 禁用 UITabBarController 默认切换动画
- 设置 UITabBarControllerDelegate
- animationControllerForTransitionFrom 返回 nil 禁用系统动画
- 使用 UIView.performWithoutAnimation 确保无动画切换
3. 修复背景色未定义导致的白色闪烁
- 显式设置浅灰色背景作为兜底 (RGB: 0.95, 0.95, 0.97)
- 添加背景图片的 contentMode 和 clipsToBounds 属性
- 确保背景图片加载延迟时不显示白色
修复后效果:
- Tab 切换流畅无闪烁,仅保留按钮缩放动画
- 背景色始终一致,无白色背景闪现
- 性能提升,消除多个动画冲突
2025-10-10 15:58:23 +08:00
edwinQQQ
49ac7efa66
禁用 MiniRoom 悬浮球(v0.2 版本)
...
问题:
- MiniRoom 悬浮球在启动时就显示
- v0.2 版本不包含房间功能,不需要此组件
修复:
1. 注释 setupRoomMiniView 调用
2. 添加版本说明注释
3. 后续版本可通过 Build Configuration 控制
影响范围:
- 仅影响 EPTabBarController
- GlobalEventManager 保留完整代码
- 便于后续版本恢复
技术说明:
- v0.2: 无 MiniRoom(当前)
- v0.5+: 启用 MiniRoom(需要房间功能)
- 使用注释而非删除,便于版本管理
2025-10-10 15:40:28 +08:00
edwinQQQ
12a8ef9a62
重构 Mine 模块为个人主页模式
...
✅ 完成功能:
1. EPMineViewController 重构
- 从菜单列表模式改为个人主页模式
- 渐变背景(深紫到蓝)
- 顶部个人信息卡片 + 底部用户动态列表
- 复用 EPMomentCell 显示动态
2. EPMineHeaderView 新建
- 大圆形头像(120x120,白色边框)
- 昵称 + ID 显示
- 关注/粉丝按钮
- 右上角设置按钮
- 渐变背景适配
3. 数据加载优化
- 用户信息加载(真实 API)
- 用户动态列表(分页加载)
- 下拉刷新功能
- 自动加载更多
4. 文件重命名
- EPMomentCell(原 NewMomentCell)
- EPMineHeaderView(新建)
- 更新 Bridging Header
技术亮点:
- 个人主页模式完全不同于原版菜单模式
- 渐变背景 + 毛玻璃效果
- 复用 EPMomentCell 减少开发量
- 真实 API 集成
下一步:
- 修复编译错误(文件未添加到 Xcode 项目)
- 继续 v0.2 版本准备
2025-10-10 15:05:07 +08:00
edwinQQQ
099b27ed15
优化 TabBar 布局和图标使用
...
✅ 布局优化:
1. 使用 SnapKit 简化约束代码
- 替换复杂的 NSLayoutConstraint.activate
- 类似 Masonry 的简洁语法
- 代码可读性大幅提升
2. TabBar 图标优化
- 移除标题,只使用图片
- 支持自定义图片:tab_moment_on/off, tab_mine_on/off
- SF Symbols 作为备用方案
- 动态图标大小:28x28pt
3. 液态玻璃效果调整
- iOS 26+ 使用 UIGlassEffect()
- iOS 13-17 使用 systemUltraThinMaterial
- 更好的视觉效果
技术亮点:
- SnapKit 布局:代码量减少 60%
- 智能图标回退:自定义图片优先,SF Symbols 备用
- 动态状态管理:选中/未选中自动切换
下一步:
- 添加真实的 tab_moment_* 和 tab_mine_* 图片资源
- 继续 Mine 模块个人主页重构
2025-10-10 15:00:37 +08:00
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
1e759ba461
添加白牌项目实施总结文档
...
- 详细记录 Phase 1 Day 1-3 的实施成果
- 文件统计:17 个新增/修改文件
- 代码统计:1778 行新代码
- 相似度预估:当前 ~36%,低于 45% 安全线
- UI 差异化:TabBar 2个Tab、卡片式设计、新配色
- 技术亮点:API域名加密、Swift/OC混编、全局事件管理
- 下一步计划:编译测试 + 资源准备
2025-10-09 17:55:58 +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
cebe158f7b
update pod
2025-10-09 16:58:22 +08:00
edwinQQQ
df573efee5
docs: Add comprehensive README with cloning instructions
...
- Project overview and tech stack
- Detailed cloning instructions with resource file requirements
- Explanation of why resources are not in Git (224MB excluded)
- Common issues and troubleshooting guide
- Contribution guidelines
2025-10-09 16:43:01 +08:00
edwinQQQ
d9bc6c3380
chore: Exclude Assets.xcassets from Git tracking
...
- Simplified .gitignore to exclude entire Assets.xcassets directory
- Removed 2405 asset files from Git tracking
- Assets are kept locally for development
- Reduced repository size by ~30 MB
- Assets should be distributed separately (cloud storage, CDN, etc.)
2025-10-09 16:35:52 +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