From 2a607e246c8d11d381bbf8b5b48e6c71673fbb69 Mon Sep 17 00:00:00 2001 From: edwinQQQ Date: Mon, 28 Jul 2025 16:57:15 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=9B=B4=E6=96=B0FeedListView=E5=92=8C?= =?UTF-8?q?MeView=E4=BB=A5=E5=A2=9E=E5=BC=BA=E5=9B=BE=E7=89=87=E9=A2=84?= =?UTF-8?q?=E8=A7=88=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在FeedListView和MeView中新增previewCurrentIndex状态,支持图片预览的当前索引管理。 - 更新ImagePreviewPager的currentIndex绑定,确保预览逻辑的正确性。 - 在FeedListContentView中添加onImageTap回调,更新previewCurrentIndex以提升用户交互体验。 - 在MainView中调整底部内边距,优化布局效果。 --- yana/Views/FeedListView.swift | 8 ++++++-- yana/Views/MainView.swift | 1 + yana/Views/MeView.swift | 4 +++- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/yana/Views/FeedListView.swift b/yana/Views/FeedListView.swift index 91e35b9..24685aa 100644 --- a/yana/Views/FeedListView.swift +++ b/yana/Views/FeedListView.swift @@ -171,6 +171,7 @@ struct MomentsListView: View { struct FeedListContentView: View { let store: StoreOf @Binding var previewItem: PreviewItem? + @Binding var previewCurrentIndex: Int var body: some View { WithViewStore(self.store, observe: { $0 }) { viewStore in @@ -186,6 +187,7 @@ struct FeedListContentView: View { hasMore: viewStore.hasMore, isLoadingMore: viewStore.isLoadingMore, onImageTap: { images, tappedIndex in + previewCurrentIndex = tappedIndex previewItem = PreviewItem(images: images, index: tappedIndex) }, onMomentTap: { moment in @@ -211,6 +213,7 @@ struct FeedListView: View { let store: StoreOf // 新增:图片预览状态 @State private var previewItem: PreviewItem? = nil + @State private var previewCurrentIndex: Int = 0 var body: some View { WithViewStore(self.store, observe: { $0 }) { viewStore in @@ -241,7 +244,8 @@ struct FeedListView: View { // 动态内容列表 FeedListContentView( store: store, - previewItem: $previewItem + previewItem: $previewItem, + previewCurrentIndex: $previewCurrentIndex ) Spacer() @@ -275,7 +279,7 @@ struct FeedListView: View { } // 新增:图片预览弹窗 .fullScreenCover(item: $previewItem) { item in - ImagePreviewPager(images: item.images, currentIndex: .constant(item.index)) { + ImagePreviewPager(images: item.images, currentIndex: $previewCurrentIndex) { previewItem = nil } } diff --git a/yana/Views/MainView.swift b/yana/Views/MainView.swift index f00685b..0db35d2 100644 --- a/yana/Views/MainView.swift +++ b/yana/Views/MainView.swift @@ -101,6 +101,7 @@ struct InternalMainView: View { )) } .frame(maxWidth: .infinity, maxHeight: .infinity, alignment: .bottom) + .padding(.bottom, 100) .ignoresSafeArea(.keyboard, edges: .bottom) // 添加API Loading和错误处理视图 diff --git a/yana/Views/MeView.swift b/yana/Views/MeView.swift index 7a42616..010b90b 100644 --- a/yana/Views/MeView.swift +++ b/yana/Views/MeView.swift @@ -5,6 +5,7 @@ struct MeView: View { let store: StoreOf // 新增:图片预览状态 @State private var previewItem: PreviewItem? = nil + @State private var previewCurrentIndex: Int = 0 var body: some View { WithViewStore(self.store, observe: { $0 }) { viewStore in @@ -55,7 +56,7 @@ struct MeView: View { } // 新增:图片预览弹窗 .fullScreenCover(item: $previewItem) { item in - ImagePreviewPager(images: item.images, currentIndex: .constant(item.index)) { + ImagePreviewPager(images: item.images, currentIndex: $previewCurrentIndex) { previewItem = nil } } @@ -139,6 +140,7 @@ struct MeView: View { allMoments: viewStore.moments, currentIndex: index, onImageTap: { images, tappedIndex in + previewCurrentIndex = tappedIndex previewItem = PreviewItem(images: images, index: tappedIndex) }, onLikeTap: { _, _, _, _ in