Files
e-party-iOS/yana/Views/HomeView.swift
edwinQQQ 9844289d72 feat: 添加设置功能和动态视图
- 新增设置功能模块,包含用户信息管理和设置选项。
- 实现动态视图,展示用户动态内容。
- 更新HomeView以支持设置页面的展示和动态视图的切换。
- 添加底部导航栏,增强用户体验。
- 更新相关视图和组件,确保一致的UI风格和交互体验。
2025-07-11 10:42:28 +08:00

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()
}
)
}