
- 在FeedView中添加加号按钮,允许用户进行操作。 - 更新HomeView以支持全屏显示和更好的布局。 - 在MeView中优化用户信息展示,增加用户ID显示。 - 调整底部导航栏样式,提升视觉效果和用户体验。 - 确保视图在安全区域内适配,增强整体布局的适应性。
64 lines
2.0 KiB
Swift
64 lines
2.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(maxWidth: .infinity, maxHeight: .infinity)
|
|
.clipped()
|
|
.ignoresSafeArea(.all)
|
|
|
|
// 主要内容区域 - 全屏显示
|
|
ZStack {
|
|
switch selectedTab {
|
|
case .feed:
|
|
FeedView()
|
|
.transition(.opacity)
|
|
case .me:
|
|
MeView()
|
|
.transition(.opacity)
|
|
}
|
|
}
|
|
.frame(maxWidth: .infinity, maxHeight: .infinity)
|
|
|
|
// 底部导航栏 - 悬浮在最上层
|
|
VStack {
|
|
Spacer()
|
|
BottomTabView(selectedTab: $selectedTab)
|
|
}
|
|
.padding(.bottom, geometry.safeAreaInsets.bottom + 100)
|
|
}
|
|
}
|
|
.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()
|
|
}
|
|
)
|
|
}
|