From 8517c5afc3405222f7a8cee0e3039df5100f6ddc Mon Sep 17 00:00:00 2001 From: anlicheng <244108715@qq.com> Date: Mon, 14 Apr 2025 17:20:26 +0800 Subject: [PATCH] fix view --- dimensionhub/Views/Index/IndexMainView.swift | 1 + dimensionhub/Views/Index/IndexModel.swift | 17 ++++----------- dimensionhub/Views/List/ListView.swift | 22 ++------------------ 3 files changed, 7 insertions(+), 33 deletions(-) diff --git a/dimensionhub/Views/Index/IndexMainView.swift b/dimensionhub/Views/Index/IndexMainView.swift index 2d30570..136be64 100644 --- a/dimensionhub/Views/Index/IndexMainView.swift +++ b/dimensionhub/Views/Index/IndexMainView.swift @@ -113,6 +113,7 @@ struct IndexMainView: View { } Spacer() + if let fixedDramaGroup = indexModel.fixedDramaGroup { Text(fixedDramaGroup.group_name) .font(.system(size: 18)) diff --git a/dimensionhub/Views/Index/IndexModel.swift b/dimensionhub/Views/Index/IndexModel.swift index 4576a2b..29f1d46 100644 --- a/dimensionhub/Views/Index/IndexModel.swift +++ b/dimensionhub/Views/Index/IndexModel.swift @@ -87,17 +87,17 @@ final class IndexModel { var scrollIDPublisher = PassthroughSubject<(String, Int), Never>() @ObservationIgnored - private var bag = Set() + private var cancel: AnyCancellable? init() { self.selectedDate = "" - self.scrollIDPublisher + self.cancel = self.scrollIDPublisher .sink { userId, scrollID in self.dramaGroupElements.forEach { element in switch element { - case .label(let groupId, let groupName): + case .label(_, _): () case .item(let groupId, let item): if item.id == scrollID { @@ -108,16 +108,8 @@ final class IndexModel { } } - let ids = self.dramaGroupElements.suffix(6).compactMap { element -> Int? in - switch element { - case .label(_, _): - return nil - case .item(groupId: _, item: let item): - return item.id - } - } - // 判断更新周期 + let ids = self.getDramaIds(self.updateDramaGroups).suffix(6) let timeDistance = self.updateInterval.distance(to: Date()) // 滑动停止的时候,检测是否到达了底部 if timeDistance > 1.0 && ids.contains(scrollID) { @@ -127,7 +119,6 @@ final class IndexModel { self.updateInterval = Date() } } - .store(in: &bag) } func loadData(userId: String) async { diff --git a/dimensionhub/Views/List/ListView.swift b/dimensionhub/Views/List/ListView.swift index f57a8d1..9f3c748 100644 --- a/dimensionhub/Views/List/ListView.swift +++ b/dimensionhub/Views/List/ListView.swift @@ -62,26 +62,8 @@ extension ListView { var body: some View { HStack(alignment: .center) { - - AsyncImage(url: URL(string: episode.thumb)) { phase in - switch phase { - case .empty: - ProgressView() - case .success(let image): - image - .resizable() - .aspectRatio(contentMode: .fill) - .frame(width: 90, height: 60) - .clipped() - default: - Image("ph_img_medium") - .resizable() - .aspectRatio(contentMode: .fill) - .clipped() - } - - } - .frame(width: 90, height: 60) + FlexImage(urlString: episode.thumb, width: 90, height: 60, placeholder: "ph_img_medium") + .frame(width: 90, height: 60) VStack(alignment: .leading, spacing: 20) { Text(episode.num_name)