{"id":19472750,"url":"https://github.com/chenfengxiaoxixi/cfpagescrollview","last_synced_at":"2025-04-25T12:31:29.120Z","repository":{"id":243107816,"uuid":"215514821","full_name":"chenfengxiaoxixi/CFPageScrollView","owner":"chenfengxiaoxixi","description":"仿ios优酷视频主页分类页面滚动视图，实现了各种滑动切换动画。二级页面使用AVFoundation实现了一个简单流媒体视频播放器，包括，播放，暂停，滑动快进，横竖屏切换等功能。","archived":false,"fork":false,"pushed_at":"2020-05-10T07:35:11.000Z","size":4266,"stargazers_count":18,"open_issues_count":2,"forks_count":2,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-03T22:01:45.458Z","etag":null,"topics":["avfoundation","scrollview-component","segmentview","swift"],"latest_commit_sha":null,"homepage":null,"language":"Swift","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/chenfengxiaoxixi.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":"2019-10-16T09:56:36.000Z","updated_at":"2024-07-19T07:45:54.000Z","dependencies_parsed_at":"2024-06-06T19:46:33.710Z","dependency_job_id":"50f2da4e-337d-4e36-a1b6-75cdd1baa826","html_url":"https://github.com/chenfengxiaoxixi/CFPageScrollView","commit_stats":null,"previous_names":["chenfengxiaoxixi/cfpagescrollview"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chenfengxiaoxixi%2FCFPageScrollView","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chenfengxiaoxixi%2FCFPageScrollView/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chenfengxiaoxixi%2FCFPageScrollView/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chenfengxiaoxixi%2FCFPageScrollView/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/chenfengxiaoxixi","download_url":"https://codeload.github.com/chenfengxiaoxixi/CFPageScrollView/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250817652,"owners_count":21492190,"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":["avfoundation","scrollview-component","segmentview","swift"],"created_at":"2024-11-10T19:15:43.727Z","updated_at":"2025-04-25T12:31:26.420Z","avatar_url":"https://github.com/chenfengxiaoxixi.png","language":"Swift","funding_links":[],"categories":[],"sub_categories":[],"readme":"# CFPageScrollView\n\n仿ios优酷视频主页分类滚动页面视图，实现了滑动切换动画，渐变色，编辑分类页面等功能。二级页面使用AVFoundation实现了一个简单流媒体视频播放器，包括，播放，暂停，滑动快进，横竖屏切换等功能。\n\n## 版本1.0.0\n\n效果图：\n\n![演示图1](https://github.com/chenfengxiaoxixi/CFPageScrollView/blob/master/演示图/演示图1.gif)\n![演示图2](https://github.com/chenfengxiaoxixi/CFPageScrollView/blob/master/演示图/演示图2.gif)\n![演示图3](https://github.com/chenfengxiaoxixi/CFPageScrollView/blob/master/演示图/演示图3.gif)\n\n使用：\n\n```\noverride func viewDidLoad() {\n    super.viewDidLoad()\n\n    // Do any additional setup after loading the view.\n    \n    //CFPageScrollView()是个viewcontroller，每个页面是childController，便于解耦\n    pageView = CFPageScrollView()\n    pageView.dataSource = self\n    pageView.delegate = self\n    addChild(pageView)\n    pageView.didMove(toParent: self)\n    pageView.view.frame = CGRect(x: 0, y: 0, width: SCREEN_WIDTH, height: SCREEN_HEIGHT)\n    view.addSubview(pageView.view)\n    \n}\n\n// MARK: - PageScrollViewDelegate\nextension CFHomePageController: PageScrollViewDelegate {\n\n  //编辑完成时，这个代理会把数据传递出来\n    func editFinishWith(_ completionData: Array\u003cAny\u003e) {\n        \n        if pageData == completionData as? Array\u003cPageDataModel\u003e {\n            \n            print(\"相等时不作操作\")\n        }\n        else\n        {\n            //数据改变时，需要重载显示页面，这里我用coredata模拟了一个存取数据的逻辑，如果是网络请求，这部分逻辑提交给后台处理，你只用上传数据，然后reload。\n         }\n    }\n\n}\n\n// MARK: - PageScrollviewViewDataSource\nextension CFHomePageController: PageScrollViewDataSource {\n    \n    //是否需要显示编辑菜单\n    func isDisplayMenu() -\u003e Bool {\n        return true\n    }\n    \n    //编辑菜单数组\n    func getMenuData() -\u003e Array\u003cAny\u003e {\n        return menuDataSource\n    }\n    \n    //编辑菜单分组title\n    func getMenuSectionTitle() -\u003e Array\u003cString\u003e {\n        return [\"显示频道\",\"未显示频道\"]\n    }\n \n    //如果不要编辑菜单，以上三个协议不用实现\n \n    //分类滑动页面数据\n    func getScrollViewData() -\u003e Array\u003cAny\u003e {\n        return pageData\n    }\n    \n    //分类滑动页面颜色主题\n    func getNavHeaderThemeColorWith(_ index: Int) -\u003e Dictionary\u003cString, UIColor\u003e         {\n         return [backgroundColorKey: ThemeBlackColor, //顶部背景色\n                norTextColorKey: ThemeGrayWhiteColor, //字体和底部标记正常颜色\n                selTextColorKey: ThemeBlueColor] //字体和底部标记选中颜色\n  \n    }\n   \n   //分类滑动页面搜索栏，SearchView为动态创建，identifier为重用标识\n   func getSearchViewWith(_ index: Int) -\u003e BaseSearchView {\n        \n       let view: BaseSearchView = pageView.reuseSearchViewWith(classString: \"SearchView\", identifier: \"view1\") as! BaseSearchView\n       view.searchButtonTransitionAnimation(preWidth: preWidth)\n       view.searchButton.addTarget(self, action: #selector(displaySearchController), for: .touchUpInside)\n       preWidth = view.searchButton.mj_w\n\n       return view\n    }\n}\n\n\n```\n具体细节需要参考工程里面的代码。\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchenfengxiaoxixi%2Fcfpagescrollview","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fchenfengxiaoxixi%2Fcfpagescrollview","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchenfengxiaoxixi%2Fcfpagescrollview/lists"}