移除 MJRefresh 依赖,恢复 SwiftUI 系统下拉刷新。
同时收紧各 ViewModel 内部 isLoading 可见性,避免不必要的视图刷新。 Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@ -91,17 +91,3 @@ Toast UI 是顶部全宽横幅,背景使用不透明主色并延伸到顶部
|
||||
- 上传进度只用于当前页面展示。
|
||||
|
||||
网络图片统一使用 `RemoteImage` / `RemoteAvatarImage`,内部由 Kingfisher 负责下载和缓存。业务页面不要再直接使用 `AsyncImage` 加载网络图片。
|
||||
|
||||
### MJRefresh
|
||||
|
||||
项目通过 CocoaPods 集成 `MJRefresh`,并在 `Core/Design/MJRefreshSupport.swift` 提供 SwiftUI 桥接能力。App 启动时会调用 `MJRefreshSupport.configure()` 设置默认中文文案。
|
||||
|
||||
SwiftUI 列表如需使用 MJRefresh 风格的下拉刷新或上拉加载,可在 `ScrollView` / `List` 上使用:
|
||||
|
||||
- `.mjRefresh(onRefresh:onLoadMore:hasMore:)`
|
||||
- `.mjRefreshHeader { ... }`
|
||||
- `.mjRefreshFooter(hasMore:action:)`
|
||||
|
||||
桥接层会自动定位底层 `UIScrollView` 并绑定 header/footer。页面仍应把真正的数据加载逻辑放在 ViewModel 中,modifier 只负责触发刷新和结束 MJRefresh 动画。
|
||||
|
||||
若页面已经使用 SwiftUI 原生 `.refreshable`,不要重复叠加 MJRefresh 下拉刷新,避免双刷新冲突。
|
||||
|
||||
Reference in New Issue
Block a user