{"id":2429,"url":"https://github.com/pmusolino/PMAlertController","last_synced_at":"2025-08-06T16:30:58.680Z","repository":{"id":41579914,"uuid":"58396278","full_name":"pmusolino/PMAlertController","owner":"pmusolino","description":"PMAlertController is a great and customizable alert that can substitute UIAlertController","archived":false,"fork":false,"pushed_at":"2023-03-07T13:46:19.000Z","size":1114,"stargazers_count":2523,"open_issues_count":13,"forks_count":187,"subscribers_count":39,"default_branch":"master","last_synced_at":"2024-12-05T22:05:35.188Z","etag":null,"topics":["alert","banner","dialog","modal","popup","swift"],"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/pmusolino.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null},"funding":{"custom":"https://www.paypal.me/pmusolino"}},"created_at":"2016-05-09T17:47:17.000Z","updated_at":"2024-10-29T16:23:41.000Z","dependencies_parsed_at":"2022-08-10T02:50:43.418Z","dependency_job_id":"d79e42dc-b57b-4ed8-8a8e-d9f9a200301e","html_url":"https://github.com/pmusolino/PMAlertController","commit_stats":{"total_commits":119,"total_committers":18,"mean_commits":6.611111111111111,"dds":"0.19327731092436973","last_synced_commit":"bcb9a6ac8ebd82d1ae99f16c1400993669e5e488"},"previous_names":[],"tags_count":21,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pmusolino%2FPMAlertController","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pmusolino%2FPMAlertController/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pmusolino%2FPMAlertController/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pmusolino%2FPMAlertController/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pmusolino","download_url":"https://codeload.github.com/pmusolino/PMAlertController/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":228923684,"owners_count":17992566,"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":["alert","banner","dialog","modal","popup","swift"],"created_at":"2024-01-05T20:16:13.551Z","updated_at":"2024-12-09T16:30:59.646Z","avatar_url":"https://github.com/pmusolino.png","language":"Swift","funding_links":["https://www.paypal.me/pmusolino"],"categories":["UI","Libs","This project is aiming to list the most needed and awesome pods lib for iOS projects","Swift","UI [🔝](#readme)","OOM-Leaks-Crash","Content"],"sub_categories":["Alert \u0026 Action Sheet","UI","Other free courses","Menu-PopupView","Alert"],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://raw.githubusercontent.com/pmusolino/PMAlertController/master/logo_pmalertcontroller.png\" alt=\"Icon\"/\u003e\n\u003c/p\u003e\n\n\n  [![Language](https://img.shields.io/badge/Swift-4%20%26%205-orange.svg)]()\n  [![GitHub license](https://img.shields.io/badge/License-MIT-lightgrey)](https://github.com/pmusolino/PMAlertController/blob/master/LICENSE)\n  [![Pod version](https://img.shields.io/badge/Cocoapods-compatible%20-blue)](https://cocoapods.org/pods/PMAlertController)\n  [![Carthage Compatible](https://img.shields.io/badge/Carthage-compatible-yellow.svg)](https://github.com/Carthage/Carthage)\n\n\nPMAlertController is a small library that allows you to substitute Apple's uncustomizable `UIAlertController`, with a beautiful and totally customizable alert that you can use in your iOS app. Enjoy!\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://raw.githubusercontent.com/pmusolino/PMAlertController/master/preview_pmalertacontroller.png\" width=800 alt=\"Icon\"/\u003e\n\u003c/p\u003e\n\n## Features\n----------------\n\n- [x] Header View\n- [x] Header Image (Optional)\n- [x] Title\n- [x] Description message\n- [x] Customizations: fonts, colors, dimensions \u0026 more\n- [x] 1, 2 buttons (horizontally) or 3+ buttons (vertically)\n- [x] Closure when a button is pressed\n- [x] Text Fields support\n- [x] Similar implementation to UIAlertController\n- [x] Cocoapods\n- [x] Carthage\n- [x] Animation with UIKit Dynamics\n- [x] Objective-C compatibility\n- [x] Swift 4, Swift 4.2 \u0026 Swift 5 support\n- [ ] Swift Package Manager\n\n\n## Requirements\n----------------\n\n- iOS 9.0+\n- Xcode 10+\n\n## CocoaPods\n----------------\n\n[CocoaPods](http://cocoapods.org) is a dependency manager for Cocoa projects. You can install it with the following command:\n\n```bash\n$ gem install cocoapods\n```\n\nTo integrate PMAlertController into your Xcode project using CocoaPods, specify it in your `Podfile`:\n\n\n```ruby\nsource 'https://github.com/CocoaPods/Specs.git'\nplatform :ios, '9.0'\nuse_frameworks!\n\npod 'PMAlertController'\n```\n\nThen, run the following command:\n\n```bash\n$ pod install\n```\n\n## Carthage\n----------------\n\n[Carthage](https://github.com/Carthage/Carthage) is a decentralized dependency manager that builds your dependencies and provides you with binary frameworks.\n\nYou can install Carthage with [Homebrew](http://brew.sh/) using the following command:\n\n```bash\n$ brew update\n$ brew install carthage\n```\n\nTo integrate PMAlertController into your Xcode project using Carthage, specify it in your `Cartfile`:\n\n```ogdl\ngithub \"pmusolino/PMAlertController\"\n```\n\nRun `carthage update` to build the framework and drag the built `PMAlertController.framework` into your Xcode project.\n\n## Manually\n----------------\n1. Download and drop ```/Library``` folder in your project.  \n2. Congratulations!  \n\n## Usage\n----------------\nThe usage is very similar to `UIAlertController`.\n`PMAlertController` has two styles: Alert \u0026 Walkthrough.\n\n**Alert Style:** with this style, the alert has the width of 270 points, like Apple's `UIAlertController`.\n\n**Walkthrough Style:** with walkthrough, the alert has the width of the screen minus 18 points from the left and the right bounds. This mode is intended to be used before authorization requests like the ones for location, push notifications and more.\n\n#### Show a simple alert with two buttons and one textfield\n\n```swift\n//This code works with Swift 5\n\nlet alertVC = PMAlertController(title: \"A Title\", description: \"My Description\", image: UIImage(named: \"img.png\"), style: .alert)\n\nalertVC.addAction(PMAlertAction(title: \"Cancel\", style: .cancel, action: { () -\u003e Void in\n            print(\"Capture action Cancel\")\n        }))\n\nalertVC.addAction(PMAlertAction(title: \"OK\", style: .default, action: { () in\n            print(\"Capture action OK\")\n        }))\n\nalertVC.addTextField { (textField) in\n            textField?.placeholder = \"Location...\"\n        }\n\nself.present(alertVC, animated: true, completion: nil)\n\n```\n\n## Swift compatibility\n\n- If you use **Swift 5.0 or higher**, you can use the [latest release](https://github.com/pmusolino/PMAlertController/releases).\n\n- If you use **Swift 4**, you can use the [release 3.5.0](https://github.com/pmusolino/PMAlertController/releases/tag/3.5.0).\n\n- If you use **Swift 3**, you can use the [release 2.1.3](https://github.com/pmusolino/PMAlertController/releases/tag/2.1.3).\n\n- If you use **Swift 2.3**, you can use the [release 1.1.0](https://github.com/pmusolino/PMAlertController/releases/tag/1.1.0)\n\n- If you use **Swift 2.2**, you can use the [release 1.0.5](https://github.com/pmusolino/PMAlertController/releases/tag/1.0.5)\n\n\n## Third Party Bindings\n\n### React Native\nYou may now use this library with [React Native](https://github.com/facebook/react-native) via the module [here](https://github.com/prscX/react-native-styled-dialogs)\n\n\n## Contributing\n\n- If you **need help** or you'd like to **ask a general question**, open an issue.\n- If you **found a bug**, open an issue.\n- If you **have a feature request**, open an issue.\n- If you **want to contribute**, submit a pull request.\n\n\n## Acknowledgements\n\n**Made with ❤️ by [Paolo Musolino](https://github.com/pmusolino).**\n\n***Follow me on:***\n#### 💼 [Linkedin](https://www.linkedin.com/in/paolomusolino/)\n\n#### 🤖 [Twitter](https://twitter.com/pmusolino)\n\n#### 🌇 [Instagram](https://www.instagram.com/pmusolino/)\n\n#### 👨🏼‍🎤 [Facebook](https://www.facebook.com/paolomusolino)\n\n\n## MIT License\n----------------\nPMAlertController 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%2Fpmusolino%2FPMAlertController","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpmusolino%2FPMAlertController","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpmusolino%2FPMAlertController/lists"}