Skip to content
Image support for UIAlertAction
Swift Ruby
Branch: master
Clone or download
Latest commit 193cf42 Oct 28, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
Example
ImageAlertAction
assets Initial commit Jul 9, 2018
.gitignore
.travis.yml Swift 5.1 (#13) Oct 27, 2019
CHANGELOG.md
Gemfile Swift 5.1 (#13) Oct 27, 2019
Gemfile.lock
ImageAlertAction.podspec Swift 5.1 (#13) Oct 27, 2019
LICENSE Update LICENSE (#10) Mar 29, 2019
README.md

README.md

Travis status

ImageAlertAction

ImageAlertAction is a UIAlertAction extension that adds support for an image in the action's button.

Action Sheet Alert

Example

To run the example project, clone the repository, and run pod install from the Example directory first.

Installation

ImageAlertAction is available through CocoaPods. To install it, simply add the following line to your Podfile:

pod 'ImageAlertAction'

Usage

Adding an image to a UIAlertAction

Create a UIAlertAction like you'd do normally, and pass an image to the image parameter. This will add the image on the left of the action's button.

let settings = UIAlertAction(
  title: "Settings",
  image: #imageLiteral(resourceName: "settings"),
  style: .default
)

Keeping the UIImage's original color

By default, the image provided will be treated as a template, and will be recolored based on the action's style. If you want to draw the original image, you can pass an image with an explicit rendering mode.

let settingsImage = #imageLiteral(resourceName: "settings").withRenderingMode(.alwaysOriginal) 
let settings = UIAlertAction(
  title: "Settings",
  image: settingsImage,
  style: .default
)

Accessing the added UIImage

As with the title and style, you can access the image set on the UIAlertAction.

let settings = UIAlertAction(
  title: "Settings",
  image: #imageLiteral(resourceName: "settings"),
  style: .default
)
settings.image // returns an optional UIImage

Presenting the UIAlertController

To present a UIAlertController containing the UIAlertAction, nothing changes.

let alertController = UIAlertController(
  title: "Title",
  message: "Message",
  preferredStyle: .actionSheet
)

let settings = UIAlertAction(
  title: "Settings",
  image: #imageLiteral(resourceName: "settings"),
  style: .default
)
alertController.addAction(settings)

present(alertController, animated: true)

Acknowledgements

License

ImageAlertAction is available under the MIT license. See the LICENSE file for more info.

You can’t perform that action at this time.