Skip to content

A custom iOS alert that replaces the stock UIAlertController. Easily style the alert to match your app. Written in Swift for iOS.

License

Notifications You must be signed in to change notification settings

jjessel/JHTAlertController

Repository files navigation

JHTAlertController

Version License Platform Carthage compatible

alt tag alt tag alt tag

Easy to use

JHTAlertController is an easy to use replacement for UIAlertController. You can customize the appearance of your alert to match the theme of your app.

// Setting up an alert with a title and message
let alertController = JHTAlertController(title: "Turtle", message: "In this alert we use a String for the title instead of an image.", preferredStyle: .alert)

// Create the action.
let cancelAction = JHTAlertAction(title: "Cancel", style: .cancel,  handler: nil)

// Create an action with a completionl handler.
let okAction = JHTAlertAction(title: "Ok", style: .default) { _ in
   print("Do something here!")
}

// Add the actions to the alert.
alertController.addAction(cancelAction)
alertController.addAction(okAction)

// Show the action
present(alertController, animated: true, completion: nil)

Customize the Appearance

  • Change Fonts
  • Change Colors
  • Add Icons

Alert

// Change the background color
alertController.alertBackgroundColor = .black

// Round the corners
alertController.hasRoundedCorners = true

Title Block

// Use an image instead of text
alertController.titleImage = UIImage(named: "Turtle")
// If you add an image to the title block, you may need to set restrictTitleViewHeight to true, depending on the image size

// Change the color of the text
alertController.titleTextColor = .black

// Change the font
alertController.titleFont = .systemFont(ofSize: 18)

// Change the title block color
alertController.titleViewBackgroundColor = .black

// Add an icon image to the title block
let alertController = JHTAlertController(title: "Wow!", message: "You can even set an icon for the alert.", preferredStyle: .alert, iconImage: UIImage(named: "TurtleDark"))

Message

// Change the font
alertController.messageFont = .systemFont(ofSize: 18)

/ Change thte text color
alertController.messageTextColor = .black

Button

// Change the color of the divider
alertController.dividerColor = .black

// Change the color of the button during the creation of the action
let blueAction = JHTAlertAction(title: "Blue", style: .default, bgColor: .blue, handler: nil)

// Change the color for all buttons of a specific action
alertController.setButtonBackgroundColorFor(.default, to: .blue)

// Change the text color for a specific action
alertController.setButtonTextColorFor(.default, to: .white)

// Change the font for a specific action
alertController.setButtonFontFor(.default, to: .systemFont(ofSize: 18))

// Change all action types to a specific color
alertController.setAllButtonBackgroundColors(to: .blue)

Example

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

Requirements

iOS 9.0 and higher

Installation

CocoaPods

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

pod "JHTAlertController"

Carthage

Carthage is a decentralized dependency manager that builds your dependencies and provides you with binary frameworks.

You can install Carthage using Homebrew:

$ brew update
$ brew install carthage

To add JHTAlertController to your Xcode project using Carthage, update your Cartfile:

github "jjessel/JHTAlertController" ~> 0.2.4

Run carthage update to build the framework and drag the built JHTAlertController.framework into your Xcode project.

Author

Jeremiah Jessel @ Jacuzzi Hot Tubs, LLC

License

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

About

A custom iOS alert that replaces the stock UIAlertController. Easily style the alert to match your app. Written in Swift for iOS.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published