
- 在DynamicsModels.swift中为动态响应结构和列表数据添加Sendable协议,提升并发安全性。 - 在FeedListFeature.swift中实现动态内容的加载逻辑,集成API请求以获取最新动态。 - 在FeedListView.swift中新增动态内容列表展示,优化用户交互体验。 - 在MeView.swift中添加设置按钮,支持弹出设置视图。 - 在SettingView.swift中新增COS上传测试功能,允许用户测试图片上传至腾讯云COS。 - 在OptimizedDynamicCardView.swift中实现优化的动态卡片组件,提升动态展示效果。
51 lines
2.1 KiB
Swift
51 lines
2.1 KiB
Swift
import SwiftUI
|
||
import ComposableArchitecture
|
||
//import Components // 如果 BottomTabView 在 Components 命名空间,否则移除
|
||
|
||
struct MainView: View {
|
||
let store: StoreOf<MainFeature>
|
||
|
||
var body: some View {
|
||
WithViewStore(self.store, observe: { $0 }) { viewStore in
|
||
NavigationStack {
|
||
GeometryReader { geometry in
|
||
ZStack {
|
||
// 背景图片
|
||
Image("bg")
|
||
.resizable()
|
||
.aspectRatio(contentMode: .fill)
|
||
.frame(maxWidth: .infinity, maxHeight: .infinity)
|
||
.clipped()
|
||
.ignoresSafeArea(.all)
|
||
// 主内容
|
||
ZStack {
|
||
switch viewStore.selectedTab {
|
||
case .feed:
|
||
FeedListView(store: store.scope(
|
||
state: \.feedList,
|
||
action: \.feedList
|
||
))
|
||
.transition(.opacity)
|
||
case .other:
|
||
|
||
MeView(onLogout: {}) // 这里可根据需要传递实际登出回调
|
||
.transition(.opacity)
|
||
}
|
||
}
|
||
.frame(maxWidth: .infinity, maxHeight: .infinity)
|
||
// 底部导航栏
|
||
VStack {
|
||
Spacer()
|
||
BottomTabView(selectedTab: viewStore.binding(
|
||
get: { Tab(rawValue: $0.selectedTab.rawValue) ?? .feed },
|
||
send: { MainFeature.Action.selectTab(MainFeature.Tab(rawValue: $0.rawValue) ?? .feed) }
|
||
))
|
||
}
|
||
.padding(.bottom, geometry.safeAreaInsets.bottom + 60)
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|