{"id":24357043,"url":"https://github.com/fanta1ty/stickyfooterscrollview","last_synced_at":"2025-04-10T04:14:31.183Z","repository":{"id":62457780,"uuid":"516665773","full_name":"fanta1ty/StickyFooterScrollView","owner":"fanta1ty","description":"StickyFooterScrollView is developed for quick creation of UIScrollView to implement.","archived":false,"fork":false,"pushed_at":"2022-08-02T14:05:58.000Z","size":642,"stargazers_count":7,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-10T04:14:25.367Z","etag":null,"topics":["cocoapods","footer","framework","ios","ios-app","ios-swift","ios11","pod","scrollview","sticky","swift","swift5","ui","ui-components","uikit","uikit-components","uikit-framework"],"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/fanta1ty.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":"2022-07-22T08:10:35.000Z","updated_at":"2023-05-22T14:24:37.000Z","dependencies_parsed_at":"2022-11-02T00:31:40.814Z","dependency_job_id":null,"html_url":"https://github.com/fanta1ty/StickyFooterScrollView","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/fanta1ty%2FStickyFooterScrollView","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fanta1ty%2FStickyFooterScrollView/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fanta1ty%2FStickyFooterScrollView/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fanta1ty%2FStickyFooterScrollView/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fanta1ty","download_url":"https://codeload.github.com/fanta1ty/StickyFooterScrollView/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248154999,"owners_count":21056543,"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":["cocoapods","footer","framework","ios","ios-app","ios-swift","ios11","pod","scrollview","sticky","swift","swift5","ui","ui-components","uikit","uikit-components","uikit-framework"],"created_at":"2025-01-18T18:55:11.883Z","updated_at":"2025-04-10T04:14:31.162Z","avatar_url":"https://github.com/fanta1ty.png","language":"Swift","funding_links":[],"categories":[],"sub_categories":[],"readme":"![LOGO](https://github.com/fanta1ty/StickyFooterScrollView/blob/master/StickyFooterScrollView/Assets/logo.png)\n\n# StickyFooterScrollView\nStickyFooterScrollView is developed for quick creation of UIScrollView to implement. Usually when creating UIScrollView, developers have to declare and adjust many complex UI constraints to use, StickyFooterScrollView was developed to solve the above problem. StickyFooterScrollView focuses on quick initialization of UIScrollView and its ease of use with a few declared simple functions\n\n[![Swift 5.0](https://img.shields.io/badge/Swift-5.0-brightgreen)](https://developer.apple.com/swift/)\n[![Version](https://img.shields.io/cocoapods/v/StickyFooterScrollView.svg?style=flat)](https://cocoapods.org/pods/StickyFooterScrollView)\n[![License](https://img.shields.io/cocoapods/l/StickyFooterScrollView.svg?style=flat)](https://cocoapods.org/pods/StickyFooterScrollView)\n[![Platform](https://img.shields.io/cocoapods/p/StickyFooterScrollView.svg?style=flat)](https://cocoapods.org/pods/StickyFooterScrollView)\n[![Email](https://img.shields.io/badge/contact-@thinhnguyen12389@gmail.com-blue)](thinhnguyen12389@gmail.com)\n\n## Example\n\nTo run the example project, clone the repo, and run `pod install` from the Example directory first.\n\n## Requirements\n\n## Installation\n\nStickyFooterScrollView is available through [CocoaPods](https://cocoapods.org). To install\nit, simply add the following line to your Podfile:\n\n```ruby\npod 'StickyFooterScrollView'\n```\n\n## Usage\n```swift\nimport StickyFooterScrollView\n```\n1) Initiate ``StickyFooterScrollView``\n```swift\nlet scrollView = StickyFooterScrollView(minimumFooterTopOffset: 24)\n```\n\n2) Add ``StickyFooterScrollView`` into parent\n```swift\nview.addSubview(scrollView)\n```\n\n3) Setup constraints for ``StickyFooterScrollView``\n```swift\nscrollView.translatesAutoresizingMaskIntoConstraints = false\n\nNSLayoutConstraint.activate([\n    scrollView.topAnchor.constraint(equalTo: view.topAnchor),\n    scrollView.leadingAnchor.constraint(equalTo: view.leadingAnchor),\n    scrollView.trailingAnchor.constraint(equalTo: view.trailingAnchor),\n    scrollView.bottomAnchor.constraint(equalTo: view.safeAreaLayoutGuide.bottomAnchor)\n])\n```\n\n4) Setup content view and add into ``StickyFooterScrollView`` to display the main content\n```swift\nlet mainContentView = UIStackView()\nmainContentView.axis = .vertical\n\nlet imageView = UIImageView(image: UIImage(named: \"Image\"))\nmainContentView.addArrangedSubview(imageView)\n\nlet titleLabel = UILabel()\ntitleLabel.text = \"Hello\"\ntitleLabel.textColor = .red\nmainContentView.addArrangedSubview(titleLabel)\n\nlet descriptionLabel = UILabel()\ndescriptionLabel.text = \"Sticky Footer Scroll View\"\ndescriptionLabel.textColor = .blue\nmainContentView.addArrangedSubview(descriptionLabel)\n        \nscrollView.applyContentView(mainContentView, with: .init(top: 24, left: 24, bottom: 24, right: 24))\n```\n\n5) Setup the footer view and add into ``StickyFooterScrollView`` to display the footer content\n```swift\nlet confirmButton = UIButton()\nconfirmButton.setTitle(\"OK\", for: .normal)\n\nscrollView.applyFooterView(confirmButton, with: .init(top: 24, left: 24, bottom: 24, right: 24))\n```\n\n6) On function ``viewDidAppear``, call the function ``updateLayout`` for constraint UI\n```swift\noverride func viewDidAppear(_ animated: Bool) {\nsuper.viewDidAppear(animated)\n\ncontentView.scrollView.updateLayout()\n}\n```\n\n![alt text](https://github.com/fanta1ty/StickyFooterScrollView/blob/master/StickyFooterScrollView/Assets/Screenshot.png)\n\n## Author\n\nfanta1ty, thinhnguyen12389@gmail.com\n\n## License\n\nStickyFooterScrollView is available under the MIT license. See the LICENSE file for more info.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffanta1ty%2Fstickyfooterscrollview","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffanta1ty%2Fstickyfooterscrollview","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffanta1ty%2Fstickyfooterscrollview/lists"}