{"adoption": {"forks": 170, "observed_at": "2026-08-28T04:03:48.476113+00:00", "stars": 1158}, "canonical_url": "https://ross.abutalabs.com/products/zlcollectionview", "card": {"archived": false, "artifact_type": "library", "description": "为应对类似淘宝首页，京东首页，国美首页等复杂布局而写的Collectionview。基于UICollectionView实现，目前支持标签布局，列布局，百分比布局，定位布局，填充式布局，瀑布流布局等。支持纵向布局和横向布局，可以根据不同的section设置不同的布局，支持拖动cell，头部悬浮，设置section背景色和自定义section背景view，向自定义背景view传递自定义方法。功能强大，超过Android的recyclerview，实现了电影选座等高难度的布局。", "domain": ["mobile-development", "frontend", "cross-platform"], "enriched": true, "function": ["ui-components", "animation"], "health_score": 20, "homepage": null, "language": "Objective-C", "license": "MIT", "license_family": "permissive", "maturity": "maintenance", "member_repos": ["czl0325/ZLCollectionView"], "name": "czl0325/ZLCollectionView", "platform": [], "pushed_at": "2023-05-09T02:46:51+00:00", "repo": "czl0325/ZLCollectionView", "stars": 1158, "tags": ["uicollectionview", "objective-c", "layout", "waterfall-layout", "cocoapods", "ios", "mobile"], "topics": ["collectionview", "collectionviewcell", "collectionviewflowlayout", "layout"], "urls": [], "use_cases": ["build a complex homepage layout like Taobao or JD in iOS", "implement waterfall flow layout in UICollectionView", "create a movie seat selection grid in iOS", "drag and reorder collection view cells", "make collection view section headers float when scrolling", "set different layouts per section in one collection view", "add custom background views to collection view sections"], "what_it_is": "An Objective-C library providing multiple UICollectionView layout types (tag, column, percentage, absolute-position, fill, waterfall) for building complex e-commerce-style pages on iOS. It supports per-section layouts, vertical and horizontal scrolling, cell dragging, floating headers, and custom section backgrounds.", "when_to_avoid": ["developing for Android or cross-platform frameworks", "using Swift-only or SwiftUI architectures where an Objective-C flow layout is awkward", "needing simple standard list or grid layouts already covered by UIKit"], "when_to_choose": ["building iOS apps with complex mixed-section collection layouts", "needing waterfall, tag, or fill layouts beyond stock UICollectionViewFlowLayout", "wanting drag-to-reorder and sticky headers with minimal configuration"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/zlcollectionview", "repo": "czl0325/ZLCollectionView", "role": "main", "score": 32}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:03:48.476113+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T06:31:56.882986+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "92da0a22ae900d145ecdfdc05127c8df70f5b6ec2d0403a34570b7c67143216f", "fetched_at": "2026-08-28T04:03:48.476113+00:00", "kind": "readme", "missing": false, "url": "https://github.com/czl0325/ZLCollectionView"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:03:48.476113+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T06:31:56.882986+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "92da0a22ae900d145ecdfdc05127c8df70f5b6ec2d0403a34570b7c67143216f", "fetched_at": "2026-08-28T04:03:48.476113+00:00", "kind": "readme", "missing": false, "url": "https://github.com/czl0325/ZLCollectionView"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T06:31:56.882986+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "92da0a22ae900d145ecdfdc05127c8df70f5b6ec2d0403a34570b7c67143216f", "fetched_at": "2026-08-28T04:03:48.476113+00:00", "kind": "readme", "missing": false, "url": "https://github.com/czl0325/ZLCollectionView"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:03:48.476113+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:03:48.476113+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:03:48.476113+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T06:31:56.882986+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "92da0a22ae900d145ecdfdc05127c8df70f5b6ec2d0403a34570b7c67143216f", "fetched_at": "2026-08-28T04:03:48.476113+00:00", "kind": "readme", "missing": false, "url": "https://github.com/czl0325/ZLCollectionView"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:03:48.476113+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:03:48.476113+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T06:31:56.882986+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "92da0a22ae900d145ecdfdc05127c8df70f5b6ec2d0403a34570b7c67143216f", "fetched_at": "2026-08-28T04:03:48.476113+00:00", "kind": "readme", "missing": false, "url": "https://github.com/czl0325/ZLCollectionView"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:03:48.476113+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:03:48.476113+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:03:48.476113+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T06:31:56.882986+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "92da0a22ae900d145ecdfdc05127c8df70f5b6ec2d0403a34570b7c67143216f", "fetched_at": "2026-08-28T04:03:48.476113+00:00", "kind": "readme", "missing": false, "url": "https://github.com/czl0325/ZLCollectionView"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:03:48.476113+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:03:48.476113+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T06:31:56.882986+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "92da0a22ae900d145ecdfdc05127c8df70f5b6ec2d0403a34570b7c67143216f", "fetched_at": "2026-08-28T04:03:48.476113+00:00", "kind": "readme", "missing": false, "url": "https://github.com/czl0325/ZLCollectionView"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T06:31:56.882986+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "92da0a22ae900d145ecdfdc05127c8df70f5b6ec2d0403a34570b7c67143216f", "fetched_at": "2026-08-28T04:03:48.476113+00:00", "kind": "readme", "missing": false, "url": "https://github.com/czl0325/ZLCollectionView"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T06:31:56.882986+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "92da0a22ae900d145ecdfdc05127c8df70f5b6ec2d0403a34570b7c67143216f", "fetched_at": "2026-08-28T04:03:48.476113+00:00", "kind": "readme", "missing": false, "url": "https://github.com/czl0325/ZLCollectionView"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T06:31:56.882986+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "92da0a22ae900d145ecdfdc05127c8df70f5b6ec2d0403a34570b7c67143216f", "fetched_at": "2026-08-28T04:03:48.476113+00:00", "kind": "readme", "missing": false, "url": "https://github.com/czl0325/ZLCollectionView"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": ["no_releases"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3358, "days_push": 1212, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 32, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}