
- 新增设置功能模块,包含用户信息管理和设置选项。 - 实现动态视图,展示用户动态内容。 - 更新HomeView以支持设置页面的展示和动态视图的切换。 - 添加底部导航栏,增强用户体验。 - 更新相关视图和组件,确保一致的UI风格和交互体验。
84 lines
3.0 KiB
Swift
84 lines
3.0 KiB
Swift
import SwiftUI
|
|
import ComposableArchitecture
|
|
|
|
struct HomeView: View {
|
|
let store: StoreOf<HomeFeature>
|
|
@ObservedObject private var localizationManager = LocalizationManager.shared
|
|
@State private var selectedTab: Tab = .feed
|
|
|
|
var body: some View {
|
|
WithPerceptionTracking {
|
|
GeometryReader { geometry in
|
|
ZStack {
|
|
// 使用 "bg" 图片作为背景
|
|
Image("bg")
|
|
.resizable()
|
|
.aspectRatio(contentMode: .fill)
|
|
.frame(width: geometry.size.width, height: geometry.size.height)
|
|
.clipped()
|
|
.ignoresSafeArea(.all)
|
|
|
|
VStack(spacing: 0) {
|
|
// 顶部导航区域
|
|
HStack {
|
|
Spacer()
|
|
|
|
// 右上角加号按钮
|
|
Button(action: {
|
|
// 加号按钮操作
|
|
}) {
|
|
Image(systemName: "plus")
|
|
.font(.system(size: 20, weight: .medium))
|
|
.foregroundColor(.red)
|
|
.frame(width: 36, height: 36)
|
|
.background(
|
|
Color.white.opacity(0.2)
|
|
.cornerRadius(18)
|
|
)
|
|
}
|
|
}
|
|
.padding(.horizontal, 20)
|
|
.padding(.top, 10)
|
|
|
|
// 主要内容区域
|
|
ZStack {
|
|
// 根据选中的 tab 显示不同的视图
|
|
switch selectedTab {
|
|
case .feed:
|
|
FeedView()
|
|
.transition(.opacity)
|
|
case .me:
|
|
MeView()
|
|
.transition(.opacity)
|
|
}
|
|
}
|
|
.frame(maxWidth: .infinity, maxHeight: .infinity)
|
|
|
|
// 底部导航栏
|
|
BottomTabView(selectedTab: $selectedTab)
|
|
}
|
|
}
|
|
}
|
|
.onAppear {
|
|
store.send(.onAppear)
|
|
}
|
|
.sheet(isPresented: Binding(
|
|
get: { store.isSettingPresented },
|
|
set: { _ in store.send(.settingDismissed) }
|
|
)) {
|
|
SettingView(store: store.scope(state: \.settingState, action: \.setting))
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
#Preview {
|
|
HomeView(
|
|
store: Store(
|
|
initialState: HomeFeature.State()
|
|
) {
|
|
HomeFeature()
|
|
}
|
|
)
|
|
}
|