
- 在DetailView中添加头像点击功能,支持展示非当前用户的主页。 - 更新OptimizedDynamicCardView以支持头像点击回调。 - 修改DetailFeature以管理用户主页显示状态。 - 在MeView中添加关闭按钮支持,优化用户体验。 - 确保其他页面的兼容性,未影响现有功能。
2.7 KiB
2.7 KiB
DetailView头像点击功能实现
需求分析
在DetailView中点击OptimizedDynamicCardView的头像时,如果是非当前用户的动态,则present一个MeView并传入该动态的uid作为displayUID。
实施计划
修改文件
- OptimizedDynamicCardView.swift:添加头像点击回调参数
- DetailFeature.swift:添加显示用户主页的状态管理
- DetailView.swift:添加MeView的present逻辑
- MeView.swift:更新OptimizedDynamicCardView调用,添加关闭按钮支持
- FeedListView.swift:更新OptimizedDynamicCardView调用
- MainView.swift:更新MeView调用
核心功能设计
-
OptimizedDynamicCardView:
- 添加
onAvatarTap: (() -> Void)?
参数 - 在头像上添加点击手势
- 移除头像的
allowsHitTesting(false)
- 添加
-
DetailFeature:
- 添加
showUserProfile: Bool
状态 - 添加
targetUserId: Int
状态 - 添加
showUserProfile(Int)
和hideUserProfile
Action
- 添加
-
DetailView:
- 在OptimizedDynamicCardView中添加头像点击回调
- 判断是否为当前用户动态
- 使用sheet替代fullScreenCover,支持下拉关闭
- 添加presentationDetents和presentationDragIndicator
-
MeView:
- 添加
showCloseButton: Bool
参数 - 在present时显示关闭按钮
- 在MainView中不显示关闭按钮
- 添加
实施步骤
- ✅ 修改OptimizedDynamicCardView添加头像点击回调
- ✅ 修改DetailFeature添加用户主页状态管理
- ✅ 修改DetailView添加MeView present逻辑
- ✅ 更新其他使用OptimizedDynamicCardView的地方
- ✅ 改进present方式,使用sheet替代fullScreenCover
- ✅ 添加MeView关闭按钮支持
功能特点
- 智能判断:只有点击非当前用户的头像才会显示用户主页
- 复用MeView:利用之前实现的displayUID功能
- 用户体验:使用sheet支持下拉关闭,更符合iOS设计规范
- 关闭按钮:在present时提供明确的关闭方式
- 向后兼容:其他页面的OptimizedDynamicCardView不受影响
完成状态
- OptimizedDynamicCardView头像点击功能
- DetailFeature状态管理
- DetailView MeView present逻辑
- 其他页面兼容性更新
- 改进present方式(sheet替代fullScreenCover)
- MeView关闭按钮支持
测试要点
- 在DetailView中点击当前用户头像,不触发任何操作
- 在DetailView中点击其他用户头像,正确显示该用户的主页
- 用户主页支持下拉关闭
- 用户主页显示关闭按钮,点击可关闭
- MainView中的MeView不显示关闭按钮
- 其他页面的OptimizedDynamicCardView正常工作
- MeView正确显示指定用户的信息