{"id":20259469,"url":"https://github.com/dequan1331/reusablenestingscrollview","last_synced_at":"2025-04-11T01:32:26.058Z","repository":{"id":62452873,"uuid":"125011867","full_name":"dequan1331/ReusableNestingScrollview","owner":"dequan1331","description":"An scrollView handler for UIScrollView \u0026 WKWebView and other scrollViews. Providing scrollview`s subViews reusable.","archived":false,"fork":false,"pushed_at":"2019-03-03T11:51:01.000Z","size":270,"stargazers_count":67,"open_issues_count":0,"forks_count":6,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-24T22:41:34.349Z","etag":null,"topics":["delegate","resuable-component","reusable","uiscrollview","wkwebview"],"latest_commit_sha":null,"homepage":"","language":"Objective-C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dequan1331.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-03-13T07:44:11.000Z","updated_at":"2024-05-29T09:48:22.000Z","dependencies_parsed_at":"2022-11-01T22:32:22.234Z","dependency_job_id":null,"html_url":"https://github.com/dequan1331/ReusableNestingScrollview","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dequan1331%2FReusableNestingScrollview","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dequan1331%2FReusableNestingScrollview/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dequan1331%2FReusableNestingScrollview/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dequan1331%2FReusableNestingScrollview/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dequan1331","download_url":"https://codeload.github.com/dequan1331/ReusableNestingScrollview/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248325299,"owners_count":21084902,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["delegate","resuable-component","reusable","uiscrollview","wkwebview"],"created_at":"2024-11-14T11:14:54.032Z","updated_at":"2025-04-11T01:32:26.021Z","avatar_url":"https://github.com/dequan1331.png","language":"Objective-C","funding_links":[],"categories":[],"sub_categories":[],"readme":"_**This repo will no longer be updated. The new versions has been moved to [HybridPageKit](https://github.com/dequan1331/HybridPageKit) as a submodule. Integrate ' HybridPageKit/ScrollReuseHandler ' subspecs with Cocoapods.**_\n\n***\n\n\u003cbr\u003e\n\u003cbr\u003e\n\n# ReusableNestingScrollview\n\n[Extended Reading](https://dequan1331.github.io/index-en.html) | [中文](./README_CN.md) | [扩展阅读](https://dequan1331.github.io/)\n\n`ReusableNestingScrollview` is a component to solve the problem of SubView global reuse and recovery in rolling views. Unlike traditional similar solutions, `RNS `does 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. \n\n\u003e Together with [WKWebViewExtension](https://github.com/dequan1331/WKWebViewExtension), sub repo of [HybridPageKit](https://github.com/dequan1331/HybridPageKit), which is a general sulotion of news App content page.\n\n## Requirements\niOS 8.0 or later\n\n\t\t\n##\tInstallation\n\n1.\tCocoaPods\n\t\n\t\tplatform :ios, '8.0'\n\t\tpod 'ReusableNestingScrollview'\n\n2.\tCloning the repository\n\n\t```objective-c\n\t#import \"RNSHandler.h\"\n\t```\n\n\n##\tFeatures\n\n1.\tEasy integration, just need 10+ lines code.\n2. \tDo not need inherit special ScrollView and special Model. Support WKWebView \u0026 UIWebView.\n3.\tData-driven, Protocol Oriented Programming.\n4. \tAdd workrange. Better view`s state management, flexible handling of business logic.\n5.\tScroll reuse \u0026 Global reuse, and Thread safe.\n\n\n#Usage\n\t\t\n1.\tExtend View`s Model By RNSModelProtocol\n\n```objc\n@interface TestModel : NSObject \u003cRNSModelProtocol\u003e\n\t\nRNSProtocolImp(_uniqueId, _componentFrame, [componentView class],[componentController class], _customContext); \n\n```\n2.\tConfig ScrollView delegate\n\n```objc\n_handler = [[RNSHandler alloc]initWithScrollView:scrollView\n                      externalScrollViewDelegate:self \n                        scrollWorkRange:200.f \n                        componentViewStateChangeBlock:^(RNSComponentViewState state, \n                        NSObject\u003cRNSModelProtocol\u003e *componentItem, __kindof UIView *componentView) {\n    \n    // handle component state change\n    // will Prepare \u0026 will Display \u0026 end Display \u0026 end prepare\n}];\n```\n3.\treload Data with Model\n\n```objc\n[_handler reloadComponentViewsWithProcessBlock:^(NSMutableDictionary\u003cNSString *,NSObject\u003cRNSModelProtocol\u003e *\u003e *componentItemDic) {        \n\t\n\t// update model`s origin\n}];\n```\n## Licenses\n\nAll source code is licensed under the [MIT License](https://github.com/dequan1331/ReusableNestingScrollview/blob/master/LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdequan1331%2Freusablenestingscrollview","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdequan1331%2Freusablenestingscrollview","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdequan1331%2Freusablenestingscrollview/lists"}