{"id":21373661,"url":"https://github.com/12207480/TYCyclePagerView","last_synced_at":"2025-07-13T08:30:31.961Z","repository":{"id":38272630,"uuid":"97844341","full_name":"12207480/TYCyclePagerView","owner":"12207480","description":"a simple and usefull cycle pager view ,and auto scroll banner view(轮播图) ,include pageControl for iOS,support Objective-C and swift","archived":false,"fork":false,"pushed_at":"2024-04-10T03:46:52.000Z","size":1397,"stargazers_count":1819,"open_issues_count":29,"forks_count":335,"subscribers_count":28,"default_branch":"master","last_synced_at":"2025-06-29T19:02:19.098Z","etag":null,"topics":["autoscrolling","banner","cycle","pagecontrol","pager"],"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/12207480.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-07-20T14:22:05.000Z","updated_at":"2025-06-12T13:19:02.000Z","dependencies_parsed_at":"2022-08-09T02:16:45.111Z","dependency_job_id":"47f2f45c-5b80-48b5-81e4-d41eec2ac22f","html_url":"https://github.com/12207480/TYCyclePagerView","commit_stats":{"total_commits":62,"total_committers":4,"mean_commits":15.5,"dds":"0.33870967741935487","last_synced_commit":"b2993eac4041383e4eb5228a24e4cda1a7fd9f5f"},"previous_names":[],"tags_count":8,"template":false,"template_full_name":null,"purl":"pkg:github/12207480/TYCyclePagerView","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/12207480%2FTYCyclePagerView","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/12207480%2FTYCyclePagerView/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/12207480%2FTYCyclePagerView/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/12207480%2FTYCyclePagerView/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/12207480","download_url":"https://codeload.github.com/12207480/TYCyclePagerView/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/12207480%2FTYCyclePagerView/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265109669,"owners_count":23712728,"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":["autoscrolling","banner","cycle","pagecontrol","pager"],"created_at":"2024-11-22T08:29:26.872Z","updated_at":"2025-07-13T08:30:31.109Z","avatar_url":"https://github.com/12207480.png","language":"Objective-C","funding_links":[],"categories":["iOS"],"sub_categories":["CyclePagerView"],"readme":"# TYCyclePagerView\na simple and usefull cycle pager view ,and auto scroll banner view ,include pageControl for iOS,support Objective-C and swift.this has been used in APP.\n\n## CocoaPods\n```\npod 'TYCyclePagerView'\n```\n## Carthage\n```\ngithub \"12207480/TYCyclePagerView\"\n```\n## Requirements\n* Xcode 8 or higher\n* iOS 7.0 or higher\n* ARC\n\n### ScreenShot\n\n![image](https://github.com/12207480/TYCyclePagerView/blob/master/ScreenShot/TYCyclePagerView.gif)\n\n## API\n\n*  DataSource and Delegate \n```objc\n\n@protocol TYCyclePagerViewDataSource \u003cNSObject\u003e\n\n- (NSInteger)numberOfItemsInPagerView:(TYCyclePagerView *)pageView;\n\n- (__kindof UICollectionViewCell *)pagerView:(TYCyclePagerView *)pagerView cellForItemAtIndex:(NSInteger)index;\n\n/**\n return pagerView layout,and cache layout\n */\n- (TYCyclePagerViewLayout *)layoutForPagerView:(TYCyclePagerView *)pageView;\n\n@protocol TYCyclePagerViewDelegate \u003cNSObject\u003e\n\n@optional\n\n/**\n pagerView did scroll to new index page\n */\n- (void)pagerView:(TYCyclePagerView *)pageView didScrollFromIndex:(NSInteger)fromIndex toIndex:(NSInteger)toIndex;\n\n/**\n pagerView did selected item cell\n */\n- (void)pagerView:(TYCyclePagerView *)pageView didSelectedItemCell:(__kindof UICollectionViewCell *)cell atIndex:(NSInteger)index;\n\n// More API see project\n```\n\n* Class\n\n```objc\n\n@interface TYCyclePagerView : UIView\n\n// will be automatically resized to track the size of the pagerView\n@property (nonatomic, strong, nullable) UIView *backgroundView; \n\n@property (nonatomic, weak, nullable) id\u003cTYCyclePagerViewDataSource\u003e dataSource;\n@property (nonatomic, weak, nullable) id\u003cTYCyclePagerViewDelegate\u003e delegate;\n\n// pager view layout is important\n@property (nonatomic, strong, readonly) TYCyclePagerViewLayout *layout;\n\n/**\n is infinite cycle pageview\n */\n@property (nonatomic, assign) BOOL isInfiniteLoop;\n\n/**\n pagerView automatic scroll time interval, default 0,disable automatic\n */\n@property (nonatomic, assign) CGFloat autoScrollInterval;\n\n\n@interface TYCyclePagerViewLayout : NSObject\n\n@property (nonatomic, assign) CGSize itemSize;\n@property (nonatomic, assign) CGFloat itemSpacing;\n@property (nonatomic, assign) UIEdgeInsets sectionInset;\n\n@property (nonatomic, assign) TYCyclePagerTransformLayoutType layoutType;\n\n@property (nonatomic, assign) CGFloat minimumScale; // sacle default 0.8\n@property (nonatomic, assign) CGFloat minimumAlpha; // alpha default 1.0\n@property (nonatomic, assign) CGFloat maximumAngle; // angle is % default 0.2\n\n\n@interface TYPageControl : UIControl\n\n@property (nonatomic, assign) NSInteger numberOfPages;          // default is 0\n@property (nonatomic, assign) NSInteger currentPage;            // default is 0. value pinned to 0..numberOfPages-1\n\n// indicatorTint color\n@property (nullable, nonatomic,strong) UIColor *pageIndicatorTintColor;\n@property (nullable, nonatomic,strong) UIColor *currentPageIndicatorTintColor;\n\n// indicator image\n@property (nullable, nonatomic,strong) UIImage *pageIndicatorImage;\n@property (nullable, nonatomic,strong) UIImage *currentPageIndicatorImage;\n```\n\n## Usage\n\n```objc\n\n- (void)addPagerView {\n    TYCyclePagerView *pagerView = [[TYCyclePagerView alloc]init];\n    pagerView.layer.borderWidth = 1;\n    pagerView.isInfiniteLoop = YES;\n    pagerView.autoScrollInterval = 3.0;\n    pagerView.dataSource = self;\n    pagerView.delegate = self;\n    // registerClass or registerNib\n    [pagerView registerClass:[TYCyclePagerViewCell class] forCellWithReuseIdentifier:@\"cellId\"];\n    [self.view addSubview:pagerView];\n    _pagerView = pagerView;\n}\n\n- (void)addPageControl {\n    TYPageControl *pageControl = [[TYPageControl alloc]init];\n    //pageControl.numberOfPages = _datas.count;\n    pageControl.currentPageIndicatorSize = CGSizeMake(8, 8);\n//    pageControl.pageIndicatorImage = [UIImage imageNamed:@\"Dot\"];\n//    pageControl.currentPageIndicatorImage = [UIImage imageNamed:@\"DotSelected\"];\n//    [pageControl addTarget:self action:@selector(pageControlValueChangeAction:) forControlEvents:UIControlEventValueChanged];\n    [_pagerView addSubview:pageControl];\n    _pageControl = pageControl;\n}\n- (void)loadData {\n    // load data to _datas\n    _pageControl.numberOfPages = _datas.count;\n    [_pagerView reloadData];\n}\n\n```\n\n### Contact\n如果你发现bug，please pull reqeust me \u003cbr\u003e\n如果你有更好的改进，please pull reqeust me \u003cbr\u003e\n\n### License\nTYCyclePagerView is released under the MIT license. See LICENSE for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F12207480%2FTYCyclePagerView","html_url":"https://awesome.ecosyste.ms/projects/github.com%2F12207480%2FTYCyclePagerView","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F12207480%2FTYCyclePagerView/lists"}