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
|
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
|
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 |
|