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 行
This commit is contained in:
edwinQQQ
2025-10-09 17:54:32 +08:00
parent e980cd5553
commit 98fb194718
12 changed files with 1350 additions and 24 deletions

183
white-label-test-guide.md Normal file
View File

@@ -0,0 +1,183 @@
# 白牌项目测试指南
## 如何运行新的 TabBar
### 方式 1在 AppDelegate 中替换根控制器(推荐)
`AppDelegate.m` 中找到设置根控制器的代码,临时替换为 NewTabBarController
```objc
#import "YuMi-Swift.h" // 引入 Swift 类
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// ... 其他初始化代码
// 临时使用新的 TabBar测试用
NewTabBarController *tabBar = [NewTabBarController create];
[tabBar refreshTabBarWithIsLogin:YES]; // 模拟已登录状态
self.window.rootViewController = tabBar;
[self.window makeKeyAndVisible];
return YES;
}
```
### 方式 2通过通知切换推荐用于测试
在任意位置发送通知切换到新 TabBar
```objc
#import "YuMi-Swift.h"
// 在某个按钮点击或测试代码中
NewTabBarController *tabBar = [NewTabBarController create];
[tabBar refreshTabBarWithIsLogin:YES];
UIWindow *window = [UIApplication sharedApplication].keyWindow;
window.rootViewController = tabBar;
```
## 测试清单
### Phase 1 - Day 1-3 测试(基础架构)
#### 1. APIConfig 域名测试
```swift
// 在 Debug 模式下运行
APIConfig.testEncryption()
// 检查 Console 输出:
// Release 域名: https://api.epartylive.com
// 当前环境域名: [测试域名]
// 备用域名: [测试域名]
```
#### 2. GlobalEventManager 测试
- [ ] 启动 App检查 Console 是否输出:
- `[GlobalEventManager] SDK 代理设置完成`
- `[GlobalEventManager] 通知监听已设置`
- `[GlobalEventManager] 房间最小化视图已添加`
#### 3. NewTabBarController 测试
- [ ] TabBar 正常显示2 个 Tab
- [ ] Tab 切换流畅
- [ ] Tab 图标正常显示(如果图片存在)
- [ ] 主色调应用正确(蓝色系)
#### 4. NewMomentViewController 测试
- [ ] 页面正常加载
- [ ] 列表正常显示(模拟数据)
- [ ] 下拉刷新功能正常
- [ ] 滚动到底部自动加载更多
- [ ] 发布按钮显示在右下角
- [ ] 点击 Cell 显示提示
- [ ] 点击发布按钮显示提示
**UI 检查**
- [ ] 卡片式布局(白色卡片 + 阴影)
- [ ] 圆角矩形头像(不是圆形!)
- [ ] 底部操作栏(点赞/评论/分享)
- [ ] 浅灰色背景
- [ ] 15px 左右边距
#### 5. NewMineViewController 测试
- [ ] 页面正常加载
- [ ] 顶部个人信息卡片显示
- [ ] 渐变背景(蓝色渐变)
- [ ] 头像(圆角矩形 + 白色边框)
- [ ] 昵称、等级显示
- [ ] 经验进度条正常
- [ ] 关注/粉丝数显示
- [ ] 菜单列表正常显示8 个菜单项)
- [ ] 点击菜单项显示提示
- [ ] 右上角设置按钮正常
**UI 检查**
- [ ] 头部高度约 280px
- [ ] 渐变背景(蓝色系)
- [ ] 所有文字使用白色
- [ ] 菜单项高度 56px
- [ ] 菜单项带右箭头
## 预期效果
### 代码层面
- Swift 文件5 个APIConfig, NewTabBarController 等)
- OC 新文件6 个GlobalEventManager, Moment, Mine 模块)
- 总新增代码:约 1500 行
- 代码相似度:预计 <20%因为是全新代码
### UI 层面
- TabBar 只有 2 Tabvs 原来的 5
- 完全不同的颜色方案蓝色系
- 卡片式设计vs 原来的列表式
- 圆角矩形头像vs 原来的圆形
- 渐变背景vs 原来的纯色
### 网络层面
- DEBUG使用原测试域名
- RELEASE使用加密的新域名 `https://api.epartylive.com`
- 代码中无明文域名
## 常见问题
### Q1: 编译失败,提示找不到 Swift 类
**A**: 检查以下配置
1. Build Settings Defines Module = YES
2. Build Settings Swift Objc Bridging Header = YuMi/YuMi-Bridging-Header.h
3. 清理项目Cmd + Shift + K然后重新编译
### Q2: 运行时 Crash提示 "selector not recognized"
**A**: 检查
1. Swift 类是否标记了 `@objc`
2. 方法是否标记了 `@objc`
3. Bridging Header 是否包含了所有需要的 OC 头文件
### Q3: TabBar 显示但是是空白页面
**A**: 检查
1. NewMomentViewController NewMineViewController 是否正确初始化
2. Console 是否有错误日志
3. 尝试直接 push 到这些 ViewController 测试
### Q4: 图片不显示
**A**:
1. 图片资源还未添加正常现象
2. 暂时使用 emoji 或文字代替
3. 后续会添加新的图片资源
## 下一步
Phase 1 - Day 2-3 完成后继续
### Day 4-5: 完善 UI 细节
- [ ] 添加真实的图片资源100-150
- [ ] 完善动画效果
- [ ] 优化交互体验
### Day 6-10: 网络层集成
- [ ] 创建 HttpRequestHelper Category
- [ ] 集成真实 API
- [ ] 测试网络请求
### Day 11-15: 全面测试
- [ ] 功能测试
- [ ] 性能测试
- [ ] 相似度检查
- [ ] 准备提审
---
**更新时间**: 2025-10-09
**当前进度**: Phase 1 - Day 2-3 完成
**文件数量**: 11 个新文件
**代码量**: ~1500