             }
         }
     }
+    
+    private var oneNewPan: Bool = false
     
     // MARK: Helper Properties
     

            return
        }
        
        if loadMoreState == .initial {
            if previous.offset != newState.offset {
                if fraction - (custom?.preload ?? 0) <= 0 && scrollView.dataCount > 0 {
                    loadMoreState = .refreshing
                }

    /// When there is no more data, is it necessary to keep the height of the custom view? If it is false, it will not be displayed.
    var isVisibleNoMore: Bool { get }
    
    /// @optional, default is true.
    /// Whether to send a request only once per drag. If it is false, it will be called continuously when the offset changes.
    var isOnlyRefreshPerDrag: Bool { get }
    
    /// @optional, default is .zero.
    /// -top: increase the distance from scrollview.
    /// -left and right: set the horizontal offset.
