Skip to content

Repository files navigation

XREasyRefreshControl

  • An easy way to use pull-to-refresh
  • 一款强大且支持自定制的iOS平台下,下拉刷新,上拉加载的刷新库。A powerful and lightweight pull-down refresh and pull-up load control.,you can customize your personality refresh according to the requirements.
  • UIScrollView进行扩展,使得向任何有UIScrollView(或其任何子类)添加刷新header和刷新footer都将变得非常容易。像UITableViewUICollectionViewUIWebView以及WKWebView
  • These UIScrollView categories makes it super easy to add pull-to-refresh and infinite scrolling fonctionalities to any UIScrollView (or any of its subclass). Like UITableView, UICollectionView, or UIWebView and WKWebView. Adding categories and methods to UIScrollView makes it easy to add refreshes to all subclasses of UIScrollView, yes, that's it!

How to Use XREasyRefreshControl(如何使用?)

Install From CocoaPods

Add pod 'XREasyRefreshControl' to your Podfile.

  • $ pod install
  • import XREasyRefresh

Swift 5.0, Xcode 10.2.1. is supported in versions 1.2.1 and above. (1.2.1版本以上支持Swift 5.0, Xcode 10.x)

Manual import

Download XREasyRefreshControl project add the files in the Source directory to your project files.

Supports(系统,语言支持)

  • Swift 4.0+
  • iOS 8.0+
  • Xcode 10.0+
  • ARC
  • Adaptation iPhoneX, iPhone XS, iPhone XS Max, iPhone XR iPhone,iPad,Screen anyway.

Usage

Optional (global configuration)(全局配置)

add the code to didFinishLaunchingWithOptions function.

XRRefreshControlSettings.sharedSetting.configSettings(
animateTimeForAdjustContentInSetTop:0.5,
animateTimeForEndRefreshContentInSetTop:0.3,
afterDelayTimeForEndInsetTopRefreshing:0.5,
pullLoadingMoreMode:.ignorePullReleaseFast,
refreshStatusLblTextColor:XRRefreshControlSettings.colorFromRGB(hexRGB:0x333333),
refreshStatusLblTextFont:UIFont.systemFont(ofSize:13))

Add refresh to UITableView(为UITableView添加header刷新和footer刷新)

// add header Refresh
mainTableView.xr.addPullToRefreshHeader(refreshHeader:XRActivityRefreshHeader(), heightForHeader:65, ignoreTopHeight:XRRefreshMarcos.xr_StatusBarHeight){
// do request...
}
// add footer Refresh
mainTableView.xr.addPullToRefreshFooter(refreshFooter:XRActivityRefreshFooter(), refreshingClosure:{
// do request...
})

Add refresh to UICollectionView(为UICollectionView添加header刷新和footer刷新)

// add header Refresh
mainCollectionVw.xr.addPullToRefreshHeader(refreshHeader:XRActivityRefreshHeader()){ // do request...
}
// add footer Refresh
mainCollectionVw.xr.addPullToRefreshFooter(refreshFooter:XRActivityRefreshFooter(), refreshingClosure:{
// do request...
})

Add refresh to UIWebView(为UIWebView添加header刷新扩展)

// add header Refresh
webView.xr.addPullToRefreshHeader(refreshHeader:XRActivityRefreshHeader()){[weak self]iniflet weakSelf =self{
weakSelf.webView.reload()}}

Add refresh to WKWebView(为WKWebView添加header刷新扩展)

// add header Refresh
wk_webView.xr.addPullToRefreshHeader(refreshHeader:XRActivityRefreshHeader()){[weak self]iniflet weakSelf =self{
weakSelf.wk_webView.reload()}}

Auto dropdown refresh(自定进行header下拉刷新)

mainTableView.xr.beginHeaderRefreshing()

End dropdown refresh(结束header刷新)

mainTableView.xr.endHeaderRefreshing()

Add a pull-up load(为UITableView,UICollectionView,UIWebView, WKWebView,UIScrollView添加刷新footer)

mainTableView.xr.addPullToLoadingMoreWithRefreshFooter(refreshFooter:XRActivityRefreshFooter(), heightForFooter:55){
// do loading more request
}

End the pull up load more(结束footer刷新)

mainTableView.xr.endFooterRefreshing()

The end pull-up loads more, showing no more data(结束footer刷新,显示无更多数据提示)

mainTableView.xr.endFooterRefreshingWithNoMoreData()

End the pull up load more, remove the pull up load more controls(结束footer刷新,并移除刷新footer)

mainTableView.xr.endFooterRefreshingWithRemoveLoadingMoreView()

End the pull up load more, load failed, click reload(结束footer的刷新,显示加载失败,点击文字即可重新加载)

mainTableView.xr.endFooterRefreshingWithLoadingFailure()

How to adapt iPhoneX, iPhoneXS, XR, and XS Max? (如何适配iPhoneX, iPhoneXS, XR, and XS Max?)

Very simple, you can specify the value of the ignoreTopHeight of XRRefreshHeader, and the value of ignoreBottomHeight of XRRefreshFooter, and ignoreBottomHeight is already adapted by default, no need to set, of course, you can also specify the value you want. Adaptation will become very simple.

非常简单,你可以指定 XRRefreshHeaderignoreTopHeight, 以及 XRRefreshFooterignoreBottomHeight的值,而ignoreBottomHeight默认已经适配好了,无须设置,当然,你也可以指定你想要的值。适配将变得非常简单。

Reveal(效果图)

image-w200image-w200UITableView,UICollectionViewUIWebView,WKWebViewUIWebView,WKWebView

Customization(如何自定制刷新样式?)

You can inherit the base classes XRBaseRefreshHeader and XRBaseRefreshFooter, override refreshStateChanged, and, if necessary, override progressvaluechanged to customize the drop-down refresh and drop-down loading effects you want.

你可以通过继承 XRBaseRefreshHeaderXRBaseRefreshFooter这两个类,通过写很少的代码就可以自定制出你想要的下拉刷新,上拉加载样式,还可以通过 progressvaluechanged的值更精确得控制动画。

LICENSE

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

About

一款强大且支持自定制的iOS平台下拉刷新,上拉加载的刷新库。A powerful and lightweight pull-down refresh and pull-up load control.,you can customize your personality refresh according to the requirements.

Topics

Resources

Stars

6 stars

Watchers

2 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
GitHub - hanzhuzi/XREasyRefreshControl: 一款强大且支持自定制的iOS平台下拉刷新,上拉加载的刷新库。A powerful and lightweight pull-down refresh and pull-up load control.,you can customize your personality refresh according to the requirements. · GitHub
Skip to content

Repository files navigation

XREasyRefreshControl

  • An easy way to use pull-to-refresh
  • 一款强大且支持自定制的iOS平台下,下拉刷新,上拉加载的刷新库。A powerful and lightweight pull-down refresh and pull-up load control.,you can customize your personality refresh according to the requirements.
  • UIScrollView进行扩展,使得向任何有UIScrollView(或其任何子类)添加刷新header和刷新footer都将变得非常容易。像UITableViewUICollectionViewUIWebView以及WKWebView
  • These UIScrollView categories makes it super easy to add pull-to-refresh and infinite scrolling fonctionalities to any UIScrollView (or any of its subclass). Like UITableView, UICollectionView, or UIWebView and WKWebView. Adding categories and methods to UIScrollView makes it easy to add refreshes to all subclasses of UIScrollView, yes, that's it!

How to Use XREasyRefreshControl(如何使用?)

Install From CocoaPods

Add pod 'XREasyRefreshControl' to your Podfile.

  • $ pod install
  • import XREasyRefresh

Swift 5.0, Xcode 10.2.1. is supported in versions 1.2.1 and above. (1.2.1版本以上支持Swift 5.0, Xcode 10.x)

Manual import

Download XREasyRefreshControl project add the files in the Source directory to your project files.

Supports(系统,语言支持)

  • Swift 4.0+
  • iOS 8.0+
  • Xcode 10.0+
  • ARC
  • Adaptation iPhoneX, iPhone XS, iPhone XS Max, iPhone XR iPhone,iPad,Screen anyway.

Usage

Optional (global configuration)(全局配置)

add the code to didFinishLaunchingWithOptions function.

XRRefreshControlSettings.sharedSetting.configSettings(
animateTimeForAdjustContentInSetTop:0.5,
animateTimeForEndRefreshContentInSetTop:0.3,
afterDelayTimeForEndInsetTopRefreshing:0.5,
pullLoadingMoreMode:.ignorePullReleaseFast,
refreshStatusLblTextColor:XRRefreshControlSettings.colorFromRGB(hexRGB:0x333333),
refreshStatusLblTextFont:UIFont.systemFont(ofSize:13))

Add refresh to UITableView(为UITableView添加header刷新和footer刷新)

// add header Refresh
mainTableView.xr.addPullToRefreshHeader(refreshHeader:XRActivityRefreshHeader(), heightForHeader:65, ignoreTopHeight:XRRefreshMarcos.xr_StatusBarHeight){
// do request...
}
// add footer Refresh
mainTableView.xr.addPullToRefreshFooter(refreshFooter:XRActivityRefreshFooter(), refreshingClosure:{
// do request...
})

Add refresh to UICollectionView(为UICollectionView添加header刷新和footer刷新)

// add header Refresh
mainCollectionVw.xr.addPullToRefreshHeader(refreshHeader:XRActivityRefreshHeader()){ // do request...
}
// add footer Refresh
mainCollectionVw.xr.addPullToRefreshFooter(refreshFooter:XRActivityRefreshFooter(), refreshingClosure:{
// do request...
})

Add refresh to UIWebView(为UIWebView添加header刷新扩展)

// add header Refresh
webView.xr.addPullToRefreshHeader(refreshHeader:XRActivityRefreshHeader()){[weak self]iniflet weakSelf =self{
weakSelf.webView.reload()}}

Add refresh to WKWebView(为WKWebView添加header刷新扩展)

// add header Refresh
wk_webView.xr.addPullToRefreshHeader(refreshHeader:XRActivityRefreshHeader()){[weak self]iniflet weakSelf =self{
weakSelf.wk_webView.reload()}}

Auto dropdown refresh(自定进行header下拉刷新)

mainTableView.xr.beginHeaderRefreshing()

End dropdown refresh(结束header刷新)

mainTableView.xr.endHeaderRefreshing()

Add a pull-up load(为UITableView,UICollectionView,UIWebView, WKWebView,UIScrollView添加刷新footer)

mainTableView.xr.addPullToLoadingMoreWithRefreshFooter(refreshFooter:XRActivityRefreshFooter(), heightForFooter:55){
// do loading more request
}

End the pull up load more(结束footer刷新)

mainTableView.xr.endFooterRefreshing()

The end pull-up loads more, showing no more data(结束footer刷新,显示无更多数据提示)

mainTableView.xr.endFooterRefreshingWithNoMoreData()

End the pull up load more, remove the pull up load more controls(结束footer刷新,并移除刷新footer)

mainTableView.xr.endFooterRefreshingWithRemoveLoadingMoreView()

End the pull up load more, load failed, click reload(结束footer的刷新,显示加载失败,点击文字即可重新加载)

mainTableView.xr.endFooterRefreshingWithLoadingFailure()

How to adapt iPhoneX, iPhoneXS, XR, and XS Max? (如何适配iPhoneX, iPhoneXS, XR, and XS Max?)

Very simple, you can specify the value of the ignoreTopHeight of XRRefreshHeader, and the value of ignoreBottomHeight of XRRefreshFooter, and ignoreBottomHeight is already adapted by default, no need to set, of course, you can also specify the value you want. Adaptation will become very simple.

非常简单,你可以指定 XRRefreshHeaderignoreTopHeight, 以及 XRRefreshFooterignoreBottomHeight的值,而ignoreBottomHeight默认已经适配好了,无须设置,当然,你也可以指定你想要的值。适配将变得非常简单。

Reveal(效果图)

image-w200image-w200UITableView,UICollectionViewUIWebView,WKWebViewUIWebView,WKWebView

Customization(如何自定制刷新样式?)

You can inherit the base classes XRBaseRefreshHeader and XRBaseRefreshFooter, override refreshStateChanged, and, if necessary, override progressvaluechanged to customize the drop-down refresh and drop-down loading effects you want.

你可以通过继承 XRBaseRefreshHeaderXRBaseRefreshFooter这两个类,通过写很少的代码就可以自定制出你想要的下拉刷新,上拉加载样式,还可以通过 progressvaluechanged的值更精确得控制动画。

LICENSE

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

About

一款强大且支持自定制的iOS平台下拉刷新,上拉加载的刷新库。A powerful and lightweight pull-down refresh and pull-up load control.,you can customize your personality refresh according to the requirements.

Topics

Resources

Stars

6 stars

Watchers

2 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - hanzhuzi/XREasyRefreshControl: 一款强大且支持自定制的iOS平台下拉刷新,上拉加载的刷新库。A powerful and lightweight pull-down refresh and pull-up load control.,you can customize your personality refresh according to the requirements. · GitHub
Skip to content

Repository files navigation

XREasyRefreshControl

  • An easy way to use pull-to-refresh
  • 一款强大且支持自定制的iOS平台下,下拉刷新,上拉加载的刷新库。A powerful and lightweight pull-down refresh and pull-up load control.,you can customize your personality refresh according to the requirements.
  • UIScrollView进行扩展,使得向任何有UIScrollView(或其任何子类)添加刷新header和刷新footer都将变得非常容易。像UITableViewUICollectionViewUIWebView以及WKWebView
  • These UIScrollView categories makes it super easy to add pull-to-refresh and infinite scrolling fonctionalities to any UIScrollView (or any of its subclass). Like UITableView, UICollectionView, or UIWebView and WKWebView. Adding categories and methods to UIScrollView makes it easy to add refreshes to all subclasses of UIScrollView, yes, that's it!

How to Use XREasyRefreshControl(如何使用?)

Install From CocoaPods

Add pod 'XREasyRefreshControl' to your Podfile.

  • $ pod install
  • import XREasyRefresh

Swift 5.0, Xcode 10.2.1. is supported in versions 1.2.1 and above. (1.2.1版本以上支持Swift 5.0, Xcode 10.x)

Manual import

Download XREasyRefreshControl project add the files in the Source directory to your project files.

Supports(系统,语言支持)

  • Swift 4.0+
  • iOS 8.0+
  • Xcode 10.0+
  • ARC
  • Adaptation iPhoneX, iPhone XS, iPhone XS Max, iPhone XR iPhone,iPad,Screen anyway.

Usage

Optional (global configuration)(全局配置)

add the code to didFinishLaunchingWithOptions function.

XRRefreshControlSettings.sharedSetting.configSettings(
animateTimeForAdjustContentInSetTop:0.5,
animateTimeForEndRefreshContentInSetTop:0.3,
afterDelayTimeForEndInsetTopRefreshing:0.5,
pullLoadingMoreMode:.ignorePullReleaseFast,
refreshStatusLblTextColor:XRRefreshControlSettings.colorFromRGB(hexRGB:0x333333),
refreshStatusLblTextFont:UIFont.systemFont(ofSize:13))

Add refresh to UITableView(为UITableView添加header刷新和footer刷新)

// add header Refresh
mainTableView.xr.addPullToRefreshHeader(refreshHeader:XRActivityRefreshHeader(), heightForHeader:65, ignoreTopHeight:XRRefreshMarcos.xr_StatusBarHeight){
// do request...
}
// add footer Refresh
mainTableView.xr.addPullToRefreshFooter(refreshFooter:XRActivityRefreshFooter(), refreshingClosure:{
// do request...
})

Add refresh to UICollectionView(为UICollectionView添加header刷新和footer刷新)

// add header Refresh
mainCollectionVw.xr.addPullToRefreshHeader(refreshHeader:XRActivityRefreshHeader()){ // do request...
}
// add footer Refresh
mainCollectionVw.xr.addPullToRefreshFooter(refreshFooter:XRActivityRefreshFooter(), refreshingClosure:{
// do request...
})

Add refresh to UIWebView(为UIWebView添加header刷新扩展)

// add header Refresh
webView.xr.addPullToRefreshHeader(refreshHeader:XRActivityRefreshHeader()){[weak self]iniflet weakSelf =self{
weakSelf.webView.reload()}}

Add refresh to WKWebView(为WKWebView添加header刷新扩展)

// add header Refresh
wk_webView.xr.addPullToRefreshHeader(refreshHeader:XRActivityRefreshHeader()){[weak self]iniflet weakSelf =self{
weakSelf.wk_webView.reload()}}

Auto dropdown refresh(自定进行header下拉刷新)

mainTableView.xr.beginHeaderRefreshing()

End dropdown refresh(结束header刷新)

mainTableView.xr.endHeaderRefreshing()

Add a pull-up load(为UITableView,UICollectionView,UIWebView, WKWebView,UIScrollView添加刷新footer)

mainTableView.xr.addPullToLoadingMoreWithRefreshFooter(refreshFooter:XRActivityRefreshFooter(), heightForFooter:55){
// do loading more request
}

End the pull up load more(结束footer刷新)

mainTableView.xr.endFooterRefreshing()

The end pull-up loads more, showing no more data(结束footer刷新,显示无更多数据提示)

mainTableView.xr.endFooterRefreshingWithNoMoreData()

End the pull up load more, remove the pull up load more controls(结束footer刷新,并移除刷新footer)

mainTableView.xr.endFooterRefreshingWithRemoveLoadingMoreView()

End the pull up load more, load failed, click reload(结束footer的刷新,显示加载失败,点击文字即可重新加载)

mainTableView.xr.endFooterRefreshingWithLoadingFailure()

How to adapt iPhoneX, iPhoneXS, XR, and XS Max? (如何适配iPhoneX, iPhoneXS, XR, and XS Max?)

Very simple, you can specify the value of the ignoreTopHeight of XRRefreshHeader, and the value of ignoreBottomHeight of XRRefreshFooter, and ignoreBottomHeight is already adapted by default, no need to set, of course, you can also specify the value you want. Adaptation will become very simple.

非常简单,你可以指定 XRRefreshHeaderignoreTopHeight, 以及 XRRefreshFooterignoreBottomHeight的值,而ignoreBottomHeight默认已经适配好了,无须设置,当然,你也可以指定你想要的值。适配将变得非常简单。

Reveal(效果图)

image-w200image-w200UITableView,UICollectionViewUIWebView,WKWebViewUIWebView,WKWebView

Customization(如何自定制刷新样式?)

You can inherit the base classes XRBaseRefreshHeader and XRBaseRefreshFooter, override refreshStateChanged, and, if necessary, override progressvaluechanged to customize the drop-down refresh and drop-down loading effects you want.

你可以通过继承 XRBaseRefreshHeaderXRBaseRefreshFooter这两个类,通过写很少的代码就可以自定制出你想要的下拉刷新,上拉加载样式,还可以通过 progressvaluechanged的值更精确得控制动画。

LICENSE

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

About

一款强大且支持自定制的iOS平台下拉刷新,上拉加载的刷新库。A powerful and lightweight pull-down refresh and pull-up load control.,you can customize your personality refresh according to the requirements.

Topics

Resources

Stars

6 stars

Watchers

2 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - hanzhuzi/XREasyRefreshControl: 一款强大且支持自定制的iOS平台下拉刷新,上拉加载的刷新库。A powerful and lightweight pull-down refresh and pull-up load control.,you can customize your personality refresh according to the requirements. · GitHub
Skip to content

Repository files navigation

XREasyRefreshControl

  • An easy way to use pull-to-refresh
  • 一款强大且支持自定制的iOS平台下,下拉刷新,上拉加载的刷新库。A powerful and lightweight pull-down refresh and pull-up load control.,you can customize your personality refresh according to the requirements.
  • UIScrollView进行扩展,使得向任何有UIScrollView(或其任何子类)添加刷新header和刷新footer都将变得非常容易。像UITableViewUICollectionViewUIWebView以及WKWebView
  • These UIScrollView categories makes it super easy to add pull-to-refresh and infinite scrolling fonctionalities to any UIScrollView (or any of its subclass). Like UITableView, UICollectionView, or UIWebView and WKWebView. Adding categories and methods to UIScrollView makes it easy to add refreshes to all subclasses of UIScrollView, yes, that's it!

How to Use XREasyRefreshControl(如何使用?)

Install From CocoaPods

Add pod 'XREasyRefreshControl' to your Podfile.

  • $ pod install
  • import XREasyRefresh

Swift 5.0, Xcode 10.2.1. is supported in versions 1.2.1 and above. (1.2.1版本以上支持Swift 5.0, Xcode 10.x)

Manual import

Download XREasyRefreshControl project add the files in the Source directory to your project files.

Supports(系统,语言支持)

  • Swift 4.0+
  • iOS 8.0+
  • Xcode 10.0+
  • ARC
  • Adaptation iPhoneX, iPhone XS, iPhone XS Max, iPhone XR iPhone,iPad,Screen anyway.

Usage

Optional (global configuration)(全局配置)

add the code to didFinishLaunchingWithOptions function.

XRRefreshControlSettings.sharedSetting.configSettings(
animateTimeForAdjustContentInSetTop:0.5,
animateTimeForEndRefreshContentInSetTop:0.3,
afterDelayTimeForEndInsetTopRefreshing:0.5,
pullLoadingMoreMode:.ignorePullReleaseFast,
refreshStatusLblTextColor:XRRefreshControlSettings.colorFromRGB(hexRGB:0x333333),
refreshStatusLblTextFont:UIFont.systemFont(ofSize:13))

Add refresh to UITableView(为UITableView添加header刷新和footer刷新)

// add header Refresh
mainTableView.xr.addPullToRefreshHeader(refreshHeader:XRActivityRefreshHeader(), heightForHeader:65, ignoreTopHeight:XRRefreshMarcos.xr_StatusBarHeight){
// do request...
}
// add footer Refresh
mainTableView.xr.addPullToRefreshFooter(refreshFooter:XRActivityRefreshFooter(), refreshingClosure:{
// do request...
})

Add refresh to UICollectionView(为UICollectionView添加header刷新和footer刷新)

// add header Refresh
mainCollectionVw.xr.addPullToRefreshHeader(refreshHeader:XRActivityRefreshHeader()){ // do request...
}
// add footer Refresh
mainCollectionVw.xr.addPullToRefreshFooter(refreshFooter:XRActivityRefreshFooter(), refreshingClosure:{
// do request...
})

Add refresh to UIWebView(为UIWebView添加header刷新扩展)

// add header Refresh
webView.xr.addPullToRefreshHeader(refreshHeader:XRActivityRefreshHeader()){[weak self]iniflet weakSelf =self{
weakSelf.webView.reload()}}

Add refresh to WKWebView(为WKWebView添加header刷新扩展)

// add header Refresh
wk_webView.xr.addPullToRefreshHeader(refreshHeader:XRActivityRefreshHeader()){[weak self]iniflet weakSelf =self{
weakSelf.wk_webView.reload()}}

Auto dropdown refresh(自定进行header下拉刷新)

mainTableView.xr.beginHeaderRefreshing()

End dropdown refresh(结束header刷新)

mainTableView.xr.endHeaderRefreshing()

Add a pull-up load(为UITableView,UICollectionView,UIWebView, WKWebView,UIScrollView添加刷新footer)

mainTableView.xr.addPullToLoadingMoreWithRefreshFooter(refreshFooter:XRActivityRefreshFooter(), heightForFooter:55){
// do loading more request
}

End the pull up load more(结束footer刷新)

mainTableView.xr.endFooterRefreshing()

The end pull-up loads more, showing no more data(结束footer刷新,显示无更多数据提示)

mainTableView.xr.endFooterRefreshingWithNoMoreData()

End the pull up load more, remove the pull up load more controls(结束footer刷新,并移除刷新footer)

mainTableView.xr.endFooterRefreshingWithRemoveLoadingMoreView()

End the pull up load more, load failed, click reload(结束footer的刷新,显示加载失败,点击文字即可重新加载)

mainTableView.xr.endFooterRefreshingWithLoadingFailure()

How to adapt iPhoneX, iPhoneXS, XR, and XS Max? (如何适配iPhoneX, iPhoneXS, XR, and XS Max?)

Very simple, you can specify the value of the ignoreTopHeight of XRRefreshHeader, and the value of ignoreBottomHeight of XRRefreshFooter, and ignoreBottomHeight is already adapted by default, no need to set, of course, you can also specify the value you want. Adaptation will become very simple.

非常简单,你可以指定 XRRefreshHeaderignoreTopHeight, 以及 XRRefreshFooterignoreBottomHeight的值,而ignoreBottomHeight默认已经适配好了,无须设置,当然,你也可以指定你想要的值。适配将变得非常简单。

Reveal(效果图)

image-w200image-w200UITableView,UICollectionViewUIWebView,WKWebViewUIWebView,WKWebView

Customization(如何自定制刷新样式?)

You can inherit the base classes XRBaseRefreshHeader and XRBaseRefreshFooter, override refreshStateChanged, and, if necessary, override progressvaluechanged to customize the drop-down refresh and drop-down loading effects you want.

你可以通过继承 XRBaseRefreshHeaderXRBaseRefreshFooter这两个类,通过写很少的代码就可以自定制出你想要的下拉刷新,上拉加载样式,还可以通过 progressvaluechanged的值更精确得控制动画。

LICENSE

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

About

一款强大且支持自定制的iOS平台下拉刷新,上拉加载的刷新库。A powerful and lightweight pull-down refresh and pull-up load control.,you can customize your personality refresh according to the requirements.

Topics

Resources

Stars

6 stars

Watchers

2 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ' GitHub - hanzhuzi/XREasyRefreshControl: 一款强大且支持自定制的iOS平台下拉刷新,上拉加载的刷新库。A powerful and lightweight pull-down refresh and pull-up load control.,you can customize your personality refresh according to the requirements. · GitHub
Skip to content

Repository files navigation

XREasyRefreshControl

  • An easy way to use pull-to-refresh
  • 一款强大且支持自定制的iOS平台下,下拉刷新,上拉加载的刷新库。A powerful and lightweight pull-down refresh and pull-up load control.,you can customize your personality refresh according to the requirements.
  • UIScrollView进行扩展,使得向任何有UIScrollView(或其任何子类)添加刷新header和刷新footer都将变得非常容易。像UITableViewUICollectionViewUIWebView以及WKWebView
  • These UIScrollView categories makes it super easy to add pull-to-refresh and infinite scrolling fonctionalities to any UIScrollView (or any of its subclass). Like UITableView, UICollectionView, or UIWebView and WKWebView. Adding categories and methods to UIScrollView makes it easy to add refreshes to all subclasses of UIScrollView, yes, that's it!

How to Use XREasyRefreshControl(如何使用?)

Install From CocoaPods

Add pod 'XREasyRefreshControl' to your Podfile.

  • $ pod install
  • import XREasyRefresh

Swift 5.0, Xcode 10.2.1. is supported in versions 1.2.1 and above. (1.2.1版本以上支持Swift 5.0, Xcode 10.x)

Manual import

Download XREasyRefreshControl project add the files in the Source directory to your project files.

Supports(系统,语言支持)

  • Swift 4.0+
  • iOS 8.0+
  • Xcode 10.0+
  • ARC
  • Adaptation iPhoneX, iPhone XS, iPhone XS Max, iPhone XR iPhone,iPad,Screen anyway.

Usage

Optional (global configuration)(全局配置)

add the code to didFinishLaunchingWithOptions function.

XRRefreshControlSettings.sharedSetting.configSettings(
animateTimeForAdjustContentInSetTop:0.5,
animateTimeForEndRefreshContentInSetTop:0.3,
afterDelayTimeForEndInsetTopRefreshing:0.5,
pullLoadingMoreMode:.ignorePullReleaseFast,
refreshStatusLblTextColor:XRRefreshControlSettings.colorFromRGB(hexRGB:0x333333),
refreshStatusLblTextFont:UIFont.systemFont(ofSize:13))

Add refresh to UITableView(为UITableView添加header刷新和footer刷新)

// add header Refresh
mainTableView.xr.addPullToRefreshHeader(refreshHeader:XRActivityRefreshHeader(), heightForHeader:65, ignoreTopHeight:XRRefreshMarcos.xr_StatusBarHeight){
// do request...
}
// add footer Refresh
mainTableView.xr.addPullToRefreshFooter(refreshFooter:XRActivityRefreshFooter(), refreshingClosure:{
// do request...
})

Add refresh to UICollectionView(为UICollectionView添加header刷新和footer刷新)

// add header Refresh
mainCollectionVw.xr.addPullToRefreshHeader(refreshHeader:XRActivityRefreshHeader()){ // do request...
}
// add footer Refresh
mainCollectionVw.xr.addPullToRefreshFooter(refreshFooter:XRActivityRefreshFooter(), refreshingClosure:{
// do request...
})

Add refresh to UIWebView(为UIWebView添加header刷新扩展)

// add header Refresh
webView.xr.addPullToRefreshHeader(refreshHeader:XRActivityRefreshHeader()){[weak self]iniflet weakSelf =self{
weakSelf.webView.reload()}}

Add refresh to WKWebView(为WKWebView添加header刷新扩展)

// add header Refresh
wk_webView.xr.addPullToRefreshHeader(refreshHeader:XRActivityRefreshHeader()){[weak self]iniflet weakSelf =self{
weakSelf.wk_webView.reload()}}

Auto dropdown refresh(自定进行header下拉刷新)

mainTableView.xr.beginHeaderRefreshing()

End dropdown refresh(结束header刷新)

mainTableView.xr.endHeaderRefreshing()

Add a pull-up load(为UITableView,UICollectionView,UIWebView, WKWebView,UIScrollView添加刷新footer)

mainTableView.xr.addPullToLoadingMoreWithRefreshFooter(refreshFooter:XRActivityRefreshFooter(), heightForFooter:55){
// do loading more request
}

End the pull up load more(结束footer刷新)

mainTableView.xr.endFooterRefreshing()

The end pull-up loads more, showing no more data(结束footer刷新,显示无更多数据提示)

mainTableView.xr.endFooterRefreshingWithNoMoreData()

End the pull up load more, remove the pull up load more controls(结束footer刷新,并移除刷新footer)

mainTableView.xr.endFooterRefreshingWithRemoveLoadingMoreView()

End the pull up load more, load failed, click reload(结束footer的刷新,显示加载失败,点击文字即可重新加载)

mainTableView.xr.endFooterRefreshingWithLoadingFailure()

How to adapt iPhoneX, iPhoneXS, XR, and XS Max? (如何适配iPhoneX, iPhoneXS, XR, and XS Max?)

Very simple, you can specify the value of the ignoreTopHeight of XRRefreshHeader, and the value of ignoreBottomHeight of XRRefreshFooter, and ignoreBottomHeight is already adapted by default, no need to set, of course, you can also specify the value you want. Adaptation will become very simple.

非常简单,你可以指定 XRRefreshHeaderignoreTopHeight, 以及 XRRefreshFooterignoreBottomHeight的值,而ignoreBottomHeight默认已经适配好了,无须设置,当然,你也可以指定你想要的值。适配将变得非常简单。

Reveal(效果图)

image-w200image-w200UITableView,UICollectionViewUIWebView,WKWebViewUIWebView,WKWebView

Customization(如何自定制刷新样式?)

You can inherit the base classes XRBaseRefreshHeader and XRBaseRefreshFooter, override refreshStateChanged, and, if necessary, override progressvaluechanged to customize the drop-down refresh and drop-down loading effects you want.

你可以通过继承 XRBaseRefreshHeaderXRBaseRefreshFooter这两个类,通过写很少的代码就可以自定制出你想要的下拉刷新,上拉加载样式,还可以通过 progressvaluechanged的值更精确得控制动画。

LICENSE

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

About

一款强大且支持自定制的iOS平台下拉刷新,上拉加载的刷新库。A powerful and lightweight pull-down refresh and pull-up load control.,you can customize your personality refresh according to the requirements.

Topics

Resources

Stars

6 stars

Watchers

2 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - hanzhuzi/XREasyRefreshControl: 一款强大且支持自定制的iOS平台下拉刷新,上拉加载的刷新库。A powerful and lightweight pull-down refresh and pull-up load control.,you can customize your personality refresh according to the requirements. · GitHub
Skip to content

Repository files navigation

XREasyRefreshControl

  • An easy way to use pull-to-refresh
  • 一款强大且支持自定制的iOS平台下,下拉刷新,上拉加载的刷新库。A powerful and lightweight pull-down refresh and pull-up load control.,you can customize your personality refresh according to the requirements.
  • UIScrollView进行扩展,使得向任何有UIScrollView(或其任何子类)添加刷新header和刷新footer都将变得非常容易。像UITableViewUICollectionViewUIWebView以及WKWebView
  • These UIScrollView categories makes it super easy to add pull-to-refresh and infinite scrolling fonctionalities to any UIScrollView (or any of its subclass). Like UITableView, UICollectionView, or UIWebView and WKWebView. Adding categories and methods to UIScrollView makes it easy to add refreshes to all subclasses of UIScrollView, yes, that's it!

How to Use XREasyRefreshControl(如何使用?)

Install From CocoaPods

Add pod 'XREasyRefreshControl' to your Podfile.

  • $ pod install
  • import XREasyRefresh

Swift 5.0, Xcode 10.2.1. is supported in versions 1.2.1 and above. (1.2.1版本以上支持Swift 5.0, Xcode 10.x)

Manual import

Download XREasyRefreshControl project add the files in the Source directory to your project files.

Supports(系统,语言支持)

  • Swift 4.0+
  • iOS 8.0+
  • Xcode 10.0+
  • ARC
  • Adaptation iPhoneX, iPhone XS, iPhone XS Max, iPhone XR iPhone,iPad,Screen anyway.

Usage

Optional (global configuration)(全局配置)

add the code to didFinishLaunchingWithOptions function.

XRRefreshControlSettings.sharedSetting.configSettings(
animateTimeForAdjustContentInSetTop:0.5,
animateTimeForEndRefreshContentInSetTop:0.3,
afterDelayTimeForEndInsetTopRefreshing:0.5,
pullLoadingMoreMode:.ignorePullReleaseFast,
refreshStatusLblTextColor:XRRefreshControlSettings.colorFromRGB(hexRGB:0x333333),
refreshStatusLblTextFont:UIFont.systemFont(ofSize:13))

Add refresh to UITableView(为UITableView添加header刷新和footer刷新)

// add header Refresh
mainTableView.xr.addPullToRefreshHeader(refreshHeader:XRActivityRefreshHeader(), heightForHeader:65, ignoreTopHeight:XRRefreshMarcos.xr_StatusBarHeight){
// do request...
}
// add footer Refresh
mainTableView.xr.addPullToRefreshFooter(refreshFooter:XRActivityRefreshFooter(), refreshingClosure:{
// do request...
})

Add refresh to UICollectionView(为UICollectionView添加header刷新和footer刷新)

// add header Refresh
mainCollectionVw.xr.addPullToRefreshHeader(refreshHeader:XRActivityRefreshHeader()){ // do request...
}
// add footer Refresh
mainCollectionVw.xr.addPullToRefreshFooter(refreshFooter:XRActivityRefreshFooter(), refreshingClosure:{
// do request...
})

Add refresh to UIWebView(为UIWebView添加header刷新扩展)

// add header Refresh
webView.xr.addPullToRefreshHeader(refreshHeader:XRActivityRefreshHeader()){[weak self]iniflet weakSelf =self{
weakSelf.webView.reload()}}

Add refresh to WKWebView(为WKWebView添加header刷新扩展)

// add header Refresh
wk_webView.xr.addPullToRefreshHeader(refreshHeader:XRActivityRefreshHeader()){[weak self]iniflet weakSelf =self{
weakSelf.wk_webView.reload()}}

Auto dropdown refresh(自定进行header下拉刷新)

mainTableView.xr.beginHeaderRefreshing()

End dropdown refresh(结束header刷新)

mainTableView.xr.endHeaderRefreshing()

Add a pull-up load(为UITableView,UICollectionView,UIWebView, WKWebView,UIScrollView添加刷新footer)

mainTableView.xr.addPullToLoadingMoreWithRefreshFooter(refreshFooter:XRActivityRefreshFooter(), heightForFooter:55){
// do loading more request
}

End the pull up load more(结束footer刷新)

mainTableView.xr.endFooterRefreshing()

The end pull-up loads more, showing no more data(结束footer刷新,显示无更多数据提示)

mainTableView.xr.endFooterRefreshingWithNoMoreData()

End the pull up load more, remove the pull up load more controls(结束footer刷新,并移除刷新footer)

mainTableView.xr.endFooterRefreshingWithRemoveLoadingMoreView()

End the pull up load more, load failed, click reload(结束footer的刷新,显示加载失败,点击文字即可重新加载)

mainTableView.xr.endFooterRefreshingWithLoadingFailure()

How to adapt iPhoneX, iPhoneXS, XR, and XS Max? (如何适配iPhoneX, iPhoneXS, XR, and XS Max?)

Very simple, you can specify the value of the ignoreTopHeight of XRRefreshHeader, and the value of ignoreBottomHeight of XRRefreshFooter, and ignoreBottomHeight is already adapted by default, no need to set, of course, you can also specify the value you want. Adaptation will become very simple.

非常简单,你可以指定 XRRefreshHeaderignoreTopHeight, 以及 XRRefreshFooterignoreBottomHeight的值,而ignoreBottomHeight默认已经适配好了,无须设置,当然,你也可以指定你想要的值。适配将变得非常简单。

Reveal(效果图)

image-w200image-w200UITableView,UICollectionViewUIWebView,WKWebViewUIWebView,WKWebView

Customization(如何自定制刷新样式?)

You can inherit the base classes XRBaseRefreshHeader and XRBaseRefreshFooter, override refreshStateChanged, and, if necessary, override progressvaluechanged to customize the drop-down refresh and drop-down loading effects you want.

你可以通过继承 XRBaseRefreshHeaderXRBaseRefreshFooter这两个类,通过写很少的代码就可以自定制出你想要的下拉刷新,上拉加载样式,还可以通过 progressvaluechanged的值更精确得控制动画。

LICENSE

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

About

一款强大且支持自定制的iOS平台下拉刷新,上拉加载的刷新库。A powerful and lightweight pull-down refresh and pull-up load control.,you can customize your personality refresh according to the requirements.

Topics

Resources

Stars

6 stars

Watchers

2 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - hanzhuzi/XREasyRefreshControl: 一款强大且支持自定制的iOS平台下拉刷新,上拉加载的刷新库。A powerful and lightweight pull-down refresh and pull-up load control.,you can customize your personality refresh according to the requirements. · GitHub
Skip to content

Repository files navigation

XREasyRefreshControl

  • An easy way to use pull-to-refresh
  • 一款强大且支持自定制的iOS平台下,下拉刷新,上拉加载的刷新库。A powerful and lightweight pull-down refresh and pull-up load control.,you can customize your personality refresh according to the requirements.
  • UIScrollView进行扩展,使得向任何有UIScrollView(或其任何子类)添加刷新header和刷新footer都将变得非常容易。像UITableViewUICollectionViewUIWebView以及WKWebView
  • These UIScrollView categories makes it super easy to add pull-to-refresh and infinite scrolling fonctionalities to any UIScrollView (or any of its subclass). Like UITableView, UICollectionView, or UIWebView and WKWebView. Adding categories and methods to UIScrollView makes it easy to add refreshes to all subclasses of UIScrollView, yes, that's it!

How to Use XREasyRefreshControl(如何使用?)

Install From CocoaPods

Add pod 'XREasyRefreshControl' to your Podfile.

  • $ pod install
  • import XREasyRefresh

Swift 5.0, Xcode 10.2.1. is supported in versions 1.2.1 and above. (1.2.1版本以上支持Swift 5.0, Xcode 10.x)

Manual import

Download XREasyRefreshControl project add the files in the Source directory to your project files.

Supports(系统,语言支持)

  • Swift 4.0+
  • iOS 8.0+
  • Xcode 10.0+
  • ARC
  • Adaptation iPhoneX, iPhone XS, iPhone XS Max, iPhone XR iPhone,iPad,Screen anyway.

Usage

Optional (global configuration)(全局配置)

add the code to didFinishLaunchingWithOptions function.

XRRefreshControlSettings.sharedSetting.configSettings(
animateTimeForAdjustContentInSetTop:0.5,
animateTimeForEndRefreshContentInSetTop:0.3,
afterDelayTimeForEndInsetTopRefreshing:0.5,
pullLoadingMoreMode:.ignorePullReleaseFast,
refreshStatusLblTextColor:XRRefreshControlSettings.colorFromRGB(hexRGB:0x333333),
refreshStatusLblTextFont:UIFont.systemFont(ofSize:13))

Add refresh to UITableView(为UITableView添加header刷新和footer刷新)

// add header Refresh
mainTableView.xr.addPullToRefreshHeader(refreshHeader:XRActivityRefreshHeader(), heightForHeader:65, ignoreTopHeight:XRRefreshMarcos.xr_StatusBarHeight){
// do request...
}
// add footer Refresh
mainTableView.xr.addPullToRefreshFooter(refreshFooter:XRActivityRefreshFooter(), refreshingClosure:{
// do request...
})

Add refresh to UICollectionView(为UICollectionView添加header刷新和footer刷新)

// add header Refresh
mainCollectionVw.xr.addPullToRefreshHeader(refreshHeader:XRActivityRefreshHeader()){ // do request...
}
// add footer Refresh
mainCollectionVw.xr.addPullToRefreshFooter(refreshFooter:XRActivityRefreshFooter(), refreshingClosure:{
// do request...
})

Add refresh to UIWebView(为UIWebView添加header刷新扩展)

// add header Refresh
webView.xr.addPullToRefreshHeader(refreshHeader:XRActivityRefreshHeader()){[weak self]iniflet weakSelf =self{
weakSelf.webView.reload()}}

Add refresh to WKWebView(为WKWebView添加header刷新扩展)

// add header Refresh
wk_webView.xr.addPullToRefreshHeader(refreshHeader:XRActivityRefreshHeader()){[weak self]iniflet weakSelf =self{
weakSelf.wk_webView.reload()}}

Auto dropdown refresh(自定进行header下拉刷新)

mainTableView.xr.beginHeaderRefreshing()

End dropdown refresh(结束header刷新)

mainTableView.xr.endHeaderRefreshing()

Add a pull-up load(为UITableView,UICollectionView,UIWebView, WKWebView,UIScrollView添加刷新footer)

mainTableView.xr.addPullToLoadingMoreWithRefreshFooter(refreshFooter:XRActivityRefreshFooter(), heightForFooter:55){
// do loading more request
}

End the pull up load more(结束footer刷新)

mainTableView.xr.endFooterRefreshing()

The end pull-up loads more, showing no more data(结束footer刷新,显示无更多数据提示)

mainTableView.xr.endFooterRefreshingWithNoMoreData()

End the pull up load more, remove the pull up load more controls(结束footer刷新,并移除刷新footer)

mainTableView.xr.endFooterRefreshingWithRemoveLoadingMoreView()

End the pull up load more, load failed, click reload(结束footer的刷新,显示加载失败,点击文字即可重新加载)

mainTableView.xr.endFooterRefreshingWithLoadingFailure()

How to adapt iPhoneX, iPhoneXS, XR, and XS Max? (如何适配iPhoneX, iPhoneXS, XR, and XS Max?)

Very simple, you can specify the value of the ignoreTopHeight of XRRefreshHeader, and the value of ignoreBottomHeight of XRRefreshFooter, and ignoreBottomHeight is already adapted by default, no need to set, of course, you can also specify the value you want. Adaptation will become very simple.

非常简单,你可以指定 XRRefreshHeaderignoreTopHeight, 以及 XRRefreshFooterignoreBottomHeight的值,而ignoreBottomHeight默认已经适配好了,无须设置,当然,你也可以指定你想要的值。适配将变得非常简单。

Reveal(效果图)

image-w200image-w200UITableView,UICollectionViewUIWebView,WKWebViewUIWebView,WKWebView

Customization(如何自定制刷新样式?)

You can inherit the base classes XRBaseRefreshHeader and XRBaseRefreshFooter, override refreshStateChanged, and, if necessary, override progressvaluechanged to customize the drop-down refresh and drop-down loading effects you want.

你可以通过继承 XRBaseRefreshHeaderXRBaseRefreshFooter这两个类,通过写很少的代码就可以自定制出你想要的下拉刷新,上拉加载样式,还可以通过 progressvaluechanged的值更精确得控制动画。

LICENSE

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

About

一款强大且支持自定制的iOS平台下拉刷新,上拉加载的刷新库。A powerful and lightweight pull-down refresh and pull-up load control.,you can customize your personality refresh according to the requirements.

Topics

Resources

Stars

6 stars

Watchers

2 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Universal Dark Mode - works on any site (function() { var enabled = true; function applyDarkMode() { if (!enabled) return; // Create style element if it doesn't exist var style = document.getElementById('universal-dark-mode-style'); if (!style) { style = document.createElement('style'); style.id = 'universal-dark-mode-style'; document.head.appendChild(style); } // Dark mode CSS - inverts colors but preserves images/video style.textContent = ' /* Invert everything except media */ html { filter: invert(1) hue-rotate(180deg) !important; background: #1a1a2e !important; } /* Restore images, videos, iframes, canvas */ img, video, iframe, canvas, svg, picture, [style*="background-image"] { filter: invert(1) hue-rotate(180deg) !important; } /* Preserve specific elements that should not be inverted */ .no-dark-mode, .no-dark-mode *, [data-theme="light"], [data-theme="light"], .ace_editor, .ace_editor *, .CodeMirror, .CodeMirror *, .monaco-editor, .monaco-editor *, .markdown-body pre, .markdown-body pre *, .highlight, .highlight *, pre code, pre code * { filter: none !important; } /* Fix common UI elements */ .modal, .popup, .dropdown-menu, .tooltip, .popover { filter: invert(1) hue-rotate(180deg) !important; background: #2d2d44 !important; border-color: #444 !important; } /* Scrollbars */ ::-webkit-scrollbar { background: #1a1a2e !important; } ::-webkit-scrollbar-thumb { background: #444 !important; } ::-webkit-scrollbar-thumb:hover { background: #555 !important; } /* Selection */ ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; } ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; } '; } function removeDarkMode() { var style = document.getElementById('universal-dark-mode-style'); if (style) style.remove(); } // Toggle with Alt+Shift+D document.addEventListener('keydown', function(e) { if (e.altKey && e.shiftKey && e.key === 'D') { e.preventDefault(); enabled = !enabled; if (enabled) { applyDarkMode(); console.log('[Universal Dark Mode] Enabled'); } else { removeDarkMode(); console.log('[Universal Dark Mode] Disabled'); } } }); // Apply on load applyDarkMode(); // Re-apply on dynamic content var observer = new MutationObserver(function(mutations) { if (enabled && !document.getElementById('universal-dark-mode-style')) { applyDarkMode(); } }); observer.observe(document.head, { childList: true }); console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle'); })(); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })(); GitHub - hanzhuzi/XREasyRefreshControl: 一款强大且支持自定制的iOS平台下拉刷新,上拉加载的刷新库。A powerful and lightweight pull-down refresh and pull-up load control.,you can customize your personality refresh according to the requirements. · GitHub
Skip to content

Repository files navigation

XREasyRefreshControl

  • An easy way to use pull-to-refresh
  • 一款强大且支持自定制的iOS平台下,下拉刷新,上拉加载的刷新库。A powerful and lightweight pull-down refresh and pull-up load control.,you can customize your personality refresh according to the requirements.
  • UIScrollView进行扩展,使得向任何有UIScrollView(或其任何子类)添加刷新header和刷新footer都将变得非常容易。像UITableViewUICollectionViewUIWebView以及WKWebView
  • These UIScrollView categories makes it super easy to add pull-to-refresh and infinite scrolling fonctionalities to any UIScrollView (or any of its subclass). Like UITableView, UICollectionView, or UIWebView and WKWebView. Adding categories and methods to UIScrollView makes it easy to add refreshes to all subclasses of UIScrollView, yes, that's it!

How to Use XREasyRefreshControl(如何使用?)

Install From CocoaPods

Add pod 'XREasyRefreshControl' to your Podfile.

  • $ pod install
  • import XREasyRefresh

Swift 5.0, Xcode 10.2.1. is supported in versions 1.2.1 and above. (1.2.1版本以上支持Swift 5.0, Xcode 10.x)

Manual import

Download XREasyRefreshControl project add the files in the Source directory to your project files.

Supports(系统,语言支持)

  • Swift 4.0+
  • iOS 8.0+
  • Xcode 10.0+
  • ARC
  • Adaptation iPhoneX, iPhone XS, iPhone XS Max, iPhone XR iPhone,iPad,Screen anyway.

Usage

Optional (global configuration)(全局配置)

add the code to didFinishLaunchingWithOptions function.

XRRefreshControlSettings.sharedSetting.configSettings(
animateTimeForAdjustContentInSetTop:0.5,
animateTimeForEndRefreshContentInSetTop:0.3,
afterDelayTimeForEndInsetTopRefreshing:0.5,
pullLoadingMoreMode:.ignorePullReleaseFast,
refreshStatusLblTextColor:XRRefreshControlSettings.colorFromRGB(hexRGB:0x333333),
refreshStatusLblTextFont:UIFont.systemFont(ofSize:13))

Add refresh to UITableView(为UITableView添加header刷新和footer刷新)

// add header Refresh
mainTableView.xr.addPullToRefreshHeader(refreshHeader:XRActivityRefreshHeader(), heightForHeader:65, ignoreTopHeight:XRRefreshMarcos.xr_StatusBarHeight){
// do request...
}
// add footer Refresh
mainTableView.xr.addPullToRefreshFooter(refreshFooter:XRActivityRefreshFooter(), refreshingClosure:{
// do request...
})

Add refresh to UICollectionView(为UICollectionView添加header刷新和footer刷新)

// add header Refresh
mainCollectionVw.xr.addPullToRefreshHeader(refreshHeader:XRActivityRefreshHeader()){ // do request...
}
// add footer Refresh
mainCollectionVw.xr.addPullToRefreshFooter(refreshFooter:XRActivityRefreshFooter(), refreshingClosure:{
// do request...
})

Add refresh to UIWebView(为UIWebView添加header刷新扩展)

// add header Refresh
webView.xr.addPullToRefreshHeader(refreshHeader:XRActivityRefreshHeader()){[weak self]iniflet weakSelf =self{
weakSelf.webView.reload()}}

Add refresh to WKWebView(为WKWebView添加header刷新扩展)

// add header Refresh
wk_webView.xr.addPullToRefreshHeader(refreshHeader:XRActivityRefreshHeader()){[weak self]iniflet weakSelf =self{
weakSelf.wk_webView.reload()}}

Auto dropdown refresh(自定进行header下拉刷新)

mainTableView.xr.beginHeaderRefreshing()

End dropdown refresh(结束header刷新)

mainTableView.xr.endHeaderRefreshing()

Add a pull-up load(为UITableView,UICollectionView,UIWebView, WKWebView,UIScrollView添加刷新footer)

mainTableView.xr.addPullToLoadingMoreWithRefreshFooter(refreshFooter:XRActivityRefreshFooter(), heightForFooter:55){
// do loading more request
}

End the pull up load more(结束footer刷新)

mainTableView.xr.endFooterRefreshing()

The end pull-up loads more, showing no more data(结束footer刷新,显示无更多数据提示)

mainTableView.xr.endFooterRefreshingWithNoMoreData()

End the pull up load more, remove the pull up load more controls(结束footer刷新,并移除刷新footer)

mainTableView.xr.endFooterRefreshingWithRemoveLoadingMoreView()

End the pull up load more, load failed, click reload(结束footer的刷新,显示加载失败,点击文字即可重新加载)

mainTableView.xr.endFooterRefreshingWithLoadingFailure()

How to adapt iPhoneX, iPhoneXS, XR, and XS Max? (如何适配iPhoneX, iPhoneXS, XR, and XS Max?)

Very simple, you can specify the value of the ignoreTopHeight of XRRefreshHeader, and the value of ignoreBottomHeight of XRRefreshFooter, and ignoreBottomHeight is already adapted by default, no need to set, of course, you can also specify the value you want. Adaptation will become very simple.

非常简单,你可以指定 XRRefreshHeaderignoreTopHeight, 以及 XRRefreshFooterignoreBottomHeight的值,而ignoreBottomHeight默认已经适配好了,无须设置,当然,你也可以指定你想要的值。适配将变得非常简单。

Reveal(效果图)

image-w200image-w200UITableView,UICollectionViewUIWebView,WKWebViewUIWebView,WKWebView

Customization(如何自定制刷新样式?)

You can inherit the base classes XRBaseRefreshHeader and XRBaseRefreshFooter, override refreshStateChanged, and, if necessary, override progressvaluechanged to customize the drop-down refresh and drop-down loading effects you want.

你可以通过继承 XRBaseRefreshHeaderXRBaseRefreshFooter这两个类,通过写很少的代码就可以自定制出你想要的下拉刷新,上拉加载样式,还可以通过 progressvaluechanged的值更精确得控制动画。

LICENSE

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

About

一款强大且支持自定制的iOS平台下拉刷新,上拉加载的刷新库。A powerful and lightweight pull-down refresh and pull-up load control.,you can customize your personality refresh according to the requirements.

Topics

Resources

Stars

6 stars

Watchers

2 watching

Forks

Releases

Packages

Used by

Contributors

Languages