Files
e-party-iOS/issues/DetailView头像点击功能.md
edwinQQQ fa544139c1 feat: 实现DetailView头像点击功能并优化MeView
- 在DetailView中添加头像点击功能,支持展示非当前用户的主页。
- 更新OptimizedDynamicCardView以支持头像点击回调。
- 修改DetailFeature以管理用户主页显示状态。
- 在MeView中添加关闭按钮支持,优化用户体验。
- 确保其他页面的兼容性,未影响现有功能。
2025-08-01 16:12:24 +08:00

2.7 KiB
Raw Blame History

DetailView头像点击功能实现

需求分析

在DetailView中点击OptimizedDynamicCardView的头像时如果是非当前用户的动态则present一个MeView并传入该动态的uid作为displayUID。

实施计划

修改文件

  1. OptimizedDynamicCardView.swift:添加头像点击回调参数
  2. DetailFeature.swift:添加显示用户主页的状态管理
  3. DetailView.swift添加MeView的present逻辑
  4. MeView.swift更新OptimizedDynamicCardView调用添加关闭按钮支持
  5. FeedListView.swift更新OptimizedDynamicCardView调用
  6. MainView.swift更新MeView调用

核心功能设计

  1. OptimizedDynamicCardView

    • 添加onAvatarTap: (() -> Void)?参数
    • 在头像上添加点击手势
    • 移除头像的allowsHitTesting(false)
  2. DetailFeature

    • 添加showUserProfile: Bool状态
    • 添加targetUserId: Int状态
    • 添加showUserProfile(Int)hideUserProfile Action
  3. DetailView

    • 在OptimizedDynamicCardView中添加头像点击回调
    • 判断是否为当前用户动态
    • 使用sheet替代fullScreenCover支持下拉关闭
    • 添加presentationDetents和presentationDragIndicator
  4. MeView

    • 添加showCloseButton: Bool参数
    • 在present时显示关闭按钮
    • 在MainView中不显示关闭按钮

实施步骤

  1. 修改OptimizedDynamicCardView添加头像点击回调
  2. 修改DetailFeature添加用户主页状态管理
  3. 修改DetailView添加MeView present逻辑
  4. 更新其他使用OptimizedDynamicCardView的地方
  5. 改进present方式使用sheet替代fullScreenCover
  6. 添加MeView关闭按钮支持

功能特点

  • 智能判断:只有点击非当前用户的头像才会显示用户主页
  • 复用MeView利用之前实现的displayUID功能
  • 用户体验使用sheet支持下拉关闭更符合iOS设计规范
  • 关闭按钮在present时提供明确的关闭方式
  • 向后兼容其他页面的OptimizedDynamicCardView不受影响

完成状态

  • OptimizedDynamicCardView头像点击功能
  • DetailFeature状态管理
  • DetailView MeView present逻辑
  • 其他页面兼容性更新
  • 改进present方式sheet替代fullScreenCover
  • MeView关闭按钮支持

测试要点

  1. 在DetailView中点击当前用户头像不触发任何操作
  2. 在DetailView中点击其他用户头像正确显示该用户的主页
  3. 用户主页支持下拉关闭
  4. 用户主页显示关闭按钮,点击可关闭
  5. MainView中的MeView不显示关闭按钮
  6. 其他页面的OptimizedDynamicCardView正常工作
  7. MeView正确显示指定用户的信息