All Projects → dequan1331 → Reusablenestingscrollview

dequan1331 / Reusablenestingscrollview

Licence: mit
An scrollView handler for UIScrollView & WKWebView and other scrollViews. Providing scrollview`s subViews reusable.

Projects that are alternatives of or similar to Reusablenestingscrollview

Tysnapshotscroll
一句代码保存截图,将 UIScrollView UITableView UICollectionView UIWebView WKWebView 网页 保存 为 长图 查看。Save the scroll view page as an image,support UIScrollView,UITableView,UICollectionView,UIWebView,WKWebView.(Support iOS13)
Stars: ✭ 709 (+1062.3%)
Mutual labels:  uiscrollview, wkwebview
Wkwebviewjavascriptbridge
🌉 A Bridge for Sending Messages between Swift and JavaScript in WKWebViews.
Stars: ✭ 863 (+1314.75%)
Mutual labels:  wkwebview
Xwebview
An extensible WebView for iOS (based on WKWebView)
Stars: ✭ 442 (+624.59%)
Mutual labels:  wkwebview
Fastexpressioncompiler
Fast ExpressionTree compiler to delegate
Stars: ✭ 631 (+934.43%)
Mutual labels:  delegate
Jt3dscrollview
ScrollView with custom effects during the scroll for iOS
Stars: ✭ 494 (+709.84%)
Mutual labels:  uiscrollview
Kkjsbridge
一站式解决 WKWebView 支持离线包,Ajax/Fetch 请求,表单请求和 Cookie 同步的问题 (基于 Ajax Hook,Fetch Hook 和 Cookie Hook)
Stars: ✭ 462 (+657.38%)
Mutual labels:  wkwebview
Dttableviewmanager
Protocol-oriented UITableView management, powered by generics and associated types.
Stars: ✭ 424 (+595.08%)
Mutual labels:  delegate
Midipianorollview
Customisable UIScrollView subclass for rendering/editing MIDI notes on a piano roll view.
Stars: ✭ 55 (-9.84%)
Mutual labels:  uiscrollview
Thinningcoordinator
The UITableView/UICollectionView dataSource/delegate thinning coordinator, help thinning your UIViewController!
Stars: ✭ 25 (-59.02%)
Mutual labels:  delegate
React Native Wkwebview
WKWebview Component for React Native
Stars: ✭ 622 (+919.67%)
Mutual labels:  wkwebview
Airbar
iOS library - UIScrollView driven expandable menu.
Stars: ✭ 596 (+877.05%)
Mutual labels:  uiscrollview
Pulltomakeflight
Custom animated pull-to-refresh that can be easily added to UIScrollView
Stars: ✭ 497 (+714.75%)
Mutual labels:  uiscrollview
Parallaxheader
Simple way to add parallax header to UIScrollView/UITableView written in Swift.
Stars: ✭ 808 (+1224.59%)
Mutual labels:  uiscrollview
Carbon
🚴 A declarative library for building component-based user interfaces in UITableView and UICollectionView.
Stars: ✭ 1,034 (+1595.08%)
Mutual labels:  delegate
Gtscrollnavigationbar
A scrollable UINavigationBar that follows a UIScrollView
Stars: ✭ 559 (+816.39%)
Mutual labels:  uiscrollview
Mylinearlayout
MyLayout is a powerful iOS UI framework implemented by Objective-C. It integrates the functions with Android Layout,iOS AutoLayout,SizeClass, HTML CSS float and flexbox and bootstrap. So you can use LinearLayout,RelativeLayout,FrameLayout,TableLayout,FlowLayout,FloatLayout,PathLayout,GridLayout,LayoutSizeClass to build your App 自动布局 UIView UITab…
Stars: ✭ 4,152 (+6706.56%)
Mutual labels:  uiscrollview
Jxbwkwebview
An component WebView for iOS base on WKWebView
Stars: ✭ 646 (+959.02%)
Mutual labels:  wkwebview
Hybridpagekit
A high-performance、high-extensibility、easy integration framework for Hybrid content page. Support most content page types of News App.
Stars: ✭ 1,101 (+1704.92%)
Mutual labels:  wkwebview
Kafkarefresh
Animated, customizable, and flexible pull-to-refresh framework for faster and easier iOS development.
Stars: ✭ 1,033 (+1593.44%)
Mutual labels:  uiscrollview
Ios tips
iOS的一些示例,持续更新中:1、AVFoundation 高仿微信相机拍摄和编辑 2、AVFoundation 人脸检测、实时滤镜、音视频编解码、GPUImage框架的使用等音视频相关内容 3、OpenGLES 4、LeetCode算法练习 5、iOS Crash防护和APM监控 6、WKWebView相关的内容 等........
Stars: ✭ 896 (+1368.85%)
Mutual labels:  wkwebview

This repo will no longer be updated. The new versions has been moved to HybridPageKit as a submodule. Integrate ' HybridPageKit/ScrollReuseHandler ' subspecs with Cocoapods.




ReusableNestingScrollview

Extended Reading | 中文 | 扩展阅读

ReusableNestingScrollview is a component to solve the problem of SubView global reuse and recovery in rolling views. Unlike traditional similar solutions, RNSdoes not need to inherit a special ScrollView, does not need to inherit a special Model ,only by extending the Delegate, so that the rolling views such as WKWebView, UIWebView, and so on are more widely supported, more general and independent.

Together with WKWebViewExtension, sub repo of HybridPageKit, which is a general sulotion of news App content page.

Requirements

iOS 8.0 or later

Installation

  1. CocoaPods

    platform :ios, '8.0'
    pod 'ReusableNestingScrollview'
    
  2. Cloning the repository

    #import "RNSHandler.h"
    

Features

  1. Easy integration, just need 10+ lines code.
  2. Do not need inherit special ScrollView and special Model. Support WKWebView & UIWebView.
  3. Data-driven, Protocol Oriented Programming.
  4. Add workrange. Better view`s state management, flexible handling of business logic.
  5. Scroll reuse & Global reuse, and Thread safe.

#Usage

  1. Extend View`s Model By RNSModelProtocol
@interface TestModel : NSObject <RNSModelProtocol>
	
RNSProtocolImp(_uniqueId, _componentFrame, [componentView class],[componentController class], _customContext); 

  1. Config ScrollView delegate
_handler = [[RNSHandler alloc]initWithScrollView:scrollView
                      externalScrollViewDelegate:self 
                        scrollWorkRange:200.f 
                        componentViewStateChangeBlock:^(RNSComponentViewState state, 
                        NSObject<RNSModelProtocol> *componentItem, __kindof UIView *componentView) {
    
    // handle component state change
    // will Prepare & will Display & end Display & end prepare
}];
  1. reload Data with Model
[_handler reloadComponentViewsWithProcessBlock:^(NSMutableDictionary<NSString *,NSObject<RNSModelProtocol> *> *componentItemDic) {        
	
	// update model`s origin
}];

Licenses

All source code is licensed under the MIT License.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].