# CreateFeedView UI 结构分析与执行计划 ## UI 结构分析 根据设计稿,CreateFeedView 应包含以下UI元素: ### 1. 顶部导航栏 - 左侧:返回按钮 - 中间:"图文发布" 标题 - 右侧:"发布" 按钮 ### 2. 主要内容区域 - 文本输入框:"Enter Content" 占位符,支持多行输入,最大500字符 - 字符计数显示:"0/500" 格式 - 图片添加区域: - 默认显示一个 "+" 按钮(使用 "add photo" 图片资源) - 支持添加最多9张图片 - 图片以网格形式排列 - 每张图片可以删除 ### 3. 底部发布按钮 - 紫色渐变背景的"发布"按钮 - 占据屏幕底部,固定位置 ## 执行计划 ### 第一步:创建 CreateFeedFeature - 定义状态管理结构 - 实现文本输入、图片选择、发布等Action - 添加表单验证逻辑 - 集成图片选择器 ### 第二步:创建 CreateFeedView - 实现顶部导航栏 - 创建文本输入区域 - 实现图片选择和展示网格 - 添加发布按钮 - 应用深色主题样式 ### 第三步:集成到 FeedView - 修改 FeedView 中的加号按钮点击事件 - 添加导航到 CreateFeedView 的逻辑 - 确保返回时能刷新动态列表 ### 第四步:创建发布API模型 - 定义发布动态的请求和响应模型 - 添加API端点定义 - 实现发布逻辑(模拟或真实API) ### 第五步:测试和优化 - 测试各种输入场景 - 验证图片选择和预览功能 - 确保UI响应和交互流畅 ## 技术要点 1. **状态管理**:使用 ComposableArchitecture 模式 2. **图片选择**:使用 PhotosUI 框架 3. **UI样式**:保持与现有深色主题一致 4. **表单验证**:实时字符计数和输入限制 5. **导航管理**:使用 NavigationStack 或 sheet 展示 ## 文件结构 ``` yana/ ├── Features/ │ └── CreateFeedFeature.swift # 新建 ├── Views/ │ └── CreateFeedView.swift # 新建 ├── APIs/ │ ├── APIEndpoints.swift # 修改:添加发布端点 │ └── DynamicsModels.swift # 修改:添加发布模型 └── Assets.xcassets/ └── Home/ └── add photo.imageset/ # 已存在 ``` 开始实施第一步:创建 CreateFeedFeature。