{"id":22358786,"url":"https://github.com/darrarski/scrollviewcontroller","last_synced_at":"2025-07-30T12:32:03.129Z","repository":{"id":52620412,"uuid":"109875761","full_name":"darrarski/ScrollViewController","owner":"darrarski","description":"Wraps your custom view and presents it on the screen in the way it fills visible area","archived":false,"fork":false,"pushed_at":"2022-01-19T13:53:34.000Z","size":899,"stargazers_count":26,"open_issues_count":0,"forks_count":2,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-07-28T18:37:21.298Z","etag":null,"topics":["cocoapods","ios","keyboard","onscreen-keyboard","uikit","uiscrollview"],"latest_commit_sha":null,"homepage":"","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/darrarski.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":"2017-11-07T18:39:54.000Z","updated_at":"2025-02-15T14:25:52.000Z","dependencies_parsed_at":"2022-08-30T10:50:09.439Z","dependency_job_id":null,"html_url":"https://github.com/darrarski/ScrollViewController","commit_stats":null,"previous_names":[],"tags_count":19,"template":false,"template_full_name":null,"purl":"pkg:github/darrarski/ScrollViewController","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/darrarski%2FScrollViewController","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/darrarski%2FScrollViewController/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/darrarski%2FScrollViewController/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/darrarski%2FScrollViewController/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/darrarski","download_url":"https://codeload.github.com/darrarski/ScrollViewController/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/darrarski%2FScrollViewController/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267867803,"owners_count":24157357,"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","status":"online","status_checked_at":"2025-07-30T02:00:09.044Z","response_time":70,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["cocoapods","ios","keyboard","onscreen-keyboard","uikit","uiscrollview"],"created_at":"2024-12-04T15:17:42.647Z","updated_at":"2025-07-30T12:32:02.806Z","avatar_url":"https://github.com/darrarski.png","language":"Swift","funding_links":["https://www.buymeacoffee.com/darrarski"],"categories":[],"sub_categories":[],"readme":"# ScrollViewController\n\n![Platform](https://img.shields.io/badge/platform-iOS-333333.svg)\n![Swift v5.5](https://img.shields.io/badge/swift-v5.5-orange.svg)\n![test coverage 89%](https://img.shields.io/badge/test_covergage-89%25-success.svg)\n[![CocoaPods](https://img.shields.io/cocoapods/v/ScrollViewController.svg)](https://cocoapods.org/pods/ScrollViewController)\n[![Carthage compatible](https://img.shields.io/badge/Carthage-compatible-4BC51D.svg?style=flat)](https://github.com/Carthage/Carthage)\n\nWraps your custom view and presents it on the screen in the way it fills visible area (not covered by navigation bar, keyboard etc.). If your custom view is too big, you will be able to scroll the content thanks to embedded `UIScrollView`.\n\n![ScrollViewController Demo App](Misc/ScrollViewController_DemoApp.gif)\n\nStarting from version `v1.1.0`, ScrollViewController does no longer depends on [KeyboardFrameChangeListener](https://github.com/darrarski/KeyboardFrameChangeListener) and [ScrollViewKeyboardAvoider](https://github.com/darrarski/ScrollViewKeyboardAvoider) frameworks, which makes it more portable and easier to integrate. That change also makes those frameworks obsolete.\n\n`KeyboardFrameChangeListener` is used to observe keyboard frame changes and then\nadjust insets using `ScrollViewKeyboardAvoider` so the keyboard does not cover the content. Supports \"safe area layout\" and makes the content fill visible area.\n\nDesigned to work on iPhone (including iPhone X) in portrait orientation (should also support other screen orientations as well as iPad screen).\n\n## Install\n\nMinimum deployment target: **iOS 10.0** (on **iOS \u003e= 11** uses Safe Area Layout for iPhone X compatibility). \n\nLast version developed using Swift 4.2 is `v1.0.12`.\n\n### Swift Package Manager\n\n`ScrollViewController` is compatible with [Swift Package Manager](https://swift.org/package-manager/). You can add it as a dependency to your [Xcode project](https://developer.apple.com/documentation/xcode/adding_package_dependencies_to_your_app) or [swift package](https://github.com/apple/swift-package-manager/blob/master/Documentation/Usage.md#defining-dependencies).\n\n### CocoaPods\n\nYou can integrate `ScrollViewController` with your project using [CocoaPods](https://cocoapods.org). Just add this line to your `Podfile`:\n\n```ruby\npod 'ScrollViewController', '~\u003e 1.3'\n```\n\n### Carthage\n\nYou can also use [Carthage](https://github.com/Carthage/Carthage) if you prefer by adding following line to your `Cartfile`:\n\n```\ngithub \"darrarski/ScrollViewController\" ~\u003e 1.3\n```\n\n## Use\n\nExample can be found in [DemoApp](DemoApp).\n\n**TL;DR**\n\n```swift\nlet yourContentView: UIView\n\nlet scrollViewController = ScrollViewController()\nscrollViewController.contentView = yourContentView\n```\n\n## Develop\n\nRequirements:\n\n- [Xcode](https://developer.apple.com/xcode/) v13.1\n- [Ruby](https://www.ruby-lang.org/) with [Bundler](https://bundler.io/pl)\n\nTo bootstrap the project run:\n\n```sh\nbundle install\n```\n\nThen open `ScrollViewController.xcodeproj` in Xcode.\n\nUse `DemoApp` build scheme for building and runing demo app.\n\nUse `Tests` build scheme for runing tests.\n\nTo lint the pod run:\n\n```sh\nbundle exec pod lib lint --allow-warnings\n```\n\nTo deploy the pod run:\n\n```sh\nbundle exec pod trunk push --allow-warnings\n```\n\n## ☕️ Do you like the project?\n\n\u003ca href=\"https://www.buymeacoffee.com/darrarski\" target=\"_blank\"\u003e\u003cimg src=\"https://cdn.buymeacoffee.com/buttons/v2/default-yellow.png\" alt=\"Buy Me A Coffee\" height=\"60\" width=\"217\" style=\"height: 60px !important;width: 217px !important;\" \u003e\u003c/a\u003e\n\n## License\n\nCopyright © 2022 Dariusz Rybicki Darrarski\n\n[MIT License](LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdarrarski%2Fscrollviewcontroller","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdarrarski%2Fscrollviewcontroller","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdarrarski%2Fscrollviewcontroller/lists"}