             newValue.map { insertSubview($0, at: 0) }
         }
     }
-
+    
     /// Indicator header
     ///
     /// - Parameters:
     ///   - height: refresh view height and also the trigger requirement, default is 60
     ///   - action: refresh action
-    public func spr_setIndicatorHeader(height: CGFloat = Default.short,
+    public func spr_setIndicatorHeader(height: CGFloat = DefaultSPTR.short,
                                        action: @escaping () -> Void) {
         spr_refreshHeader = IndicatorHeader(height: height, action: action)
     }
-
+    
     /// Text header
     ///
     /// - Parameters:


// MARK: default values

struct Default {
    static let color: UIColor = UIColor.black.withAlphaComponent(0.8)
    static let font: UIFont = UIFont.systemFont(ofSize: 14)
    static let loadingText = "Loading..."
    static let pullingText = "Pull down to refresh"
    static let releaseText = "Release to refresh"
    static let pullingFooterText = "Pull up to load more"
    static let releaseFooterText = "Release to load more"
    static let high: CGFloat = 120
    static let short: CGFloat = 60
}

    ///   - releaseText: text display for dragging when reach the trigger, default is 'Release to refresh'
    ///   - height: refresh view height and also the trigger requirement, default is 60
    ///   - action: refresh action
    public func spr_setTextHeader(loadingText: String = DefaultSPTR.loadingText,
                                  pullingText: String = DefaultSPTR.pullingText,
                                  releaseText: String = DefaultSPTR.releaseText,
                                  height: CGFloat = DefaultSPTR.short,
                                  action: @escaping () -> Void) {
        let textItem = TextItem(loadingText: loadingText, pullingText: pullingText, releaseText: releaseText)
        spr_refreshHeader = TextHeader(textItem: textItem, height: height, action: action)
    }
    
    /// GIF header
    ///
    /// - Parameters:
