首页 > 解决方案 > 拉动刷新 SwiftUI SwiftUIRefresh / Sticky Scroll View

问题描述

我试图让我的滚动视图按预期工作。当我在我的 StateArrayView 上实现 .pullToRefresh 并显示视图时,拉动刷新工作,但滚动感觉发生了变化。当您抬起手指时,它会立即停止。

我试图将 .pullToRefresh 仅添加到列表中,并且除了 StateArrayView 出现时,一切都按预期工作。拉动刷新不起作用。

我很茫然,不知道还有什么尝试。有没有办法重置特定视图的滚动行为方式?

List{
    if self.controlCenter.ShowStateArray == false {                        
 if self.array == [] && self.controlCenter.selectedHeaders.count == 0 {
 
//SHOW DATA UPON IMPORTING...
 if self.controlCenter.showInitialList{
 InitialListView(array: self.array, text: self.text)
    }
 }
 
 else if self.array == [] && self.controlCenter.selectedHeaders.count != 0 {
 ModifiedListView(array: self.array, text: self.text)
   }
 }
 
 if self.controlCenter.ShowStateArray {
 
 StateArrayView(array: self.array, text: self.text) 

.pullToRefresh(isShowing: self.$isShowing) {
 
 DispatchQueue.main.asyncAfter(deadline: .now() + 1) {
 print("Refresh")
 self.text = ""
 self.array = []
 self.controlCenter.searchTerm = ""
 //self.controlCenter.selectedHeaders.removeAll()
 self.controlCenter.showInitialList = true
 self.controlCenter.arrayCount = self.controlCenter.initialList.count
 self.array.removeAll()
 self.array = self.controlCenter.modifiedList
 self.isShowing = false
 
      }
 
    }
  }
 
 
 }.padding(.init(top: 0, leading: 8, bottom: 0, trailing: 8))
 .id(UUID())
 .pullToRefresh(isShowing: self.$isShowing) {
 
 DispatchQueue.main.asyncAfter(deadline: .now() + 1) {
 print("Refresh")
 self.text = ""
 self.array = []
 self.controlCenter.searchTerm = ""
 //self.controlCenter.selectedHeaders.removeAll()
 self.controlCenter.showInitialList = true
 self.controlCenter.arrayCount = self.controlCenter.initialList.count
 self.array.removeAll()
 self.array = self.controlCenter.modifiedList
 self.isShowing = false
 
 }
 
 }
                    

标签: swiftuiscrollviewrefresh

解决方案


推荐阅读