A simple fully customizable alert controller
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
Podfile - Swift 3 Oct 17, 2016
demo.gif - Added pod Sep 28, 2016



A simple fully customizable alert controller

Platform Swift 2.2 Swift 3 Cocoapods Compatible


  • Add pod 'MIAlertController', '~> 1.3' to your Podfile if you're using Swift 3 or copy the "MIAlertController" folder into your project from the master branch
  • Add pod 'MIAlertController', '~> 1.1' to your Podfile if you're using Swift 2.2 7 or copy the "MIAlertController" folder into your project from the "swift2.2" branch
  • Create a new instance with just a line of code

  title: "Your alert title",
  message: "Your alert description",
  buttons: [
    MIAlertController.Button(title: "Button one", action: {
      print("button one tapped")
    MIAlertController.Button(title: "Button two", action: {
      print("button two tapped")



  • You can customize the alert's behavior and UI by creating a new instance of the struct MIAlertController.Config and changing it's property as you like
    • config.dismissOnTouchOutsideEnabled -> It allows the user to dismiss the alert by tapping anywhere outside it
    • config.backgroundColor -> Overlay layer background
    • config.alertViewBackgroundColor -> Alert background
    • config.alertViewCornerRadius -> Alert corner radius
    • config.alertMarginSize -> The max margins between the alert and the screen
    • config.separatorColor -> The color of separator between the buttons
    • config.alertViewMaxSize -> The max size of the alert
    • config.titleLabelFont -> the font of the title
    • config.titleLabelTextColor -> the color of the title
    • config.titleLabelTextAlignment -> the text alignment of the title
    • config.messageLabelFont -> the font of the message
    • config.messageLabelTextColor -> the color of the message
    • config.messageLabelTextAlignment -> the text alignment of the message
    • config.messageVerticalSpaceFromTitle -> the space from title of the message
    • config.buttonBackgroundView -> the background color of the view who contains the buttons
    • config.firstButtonRatio -> the ratio between the width of the buttons container and the width of the first button; Only available with two buttons
  • There are three type of buttons (.Default, .Destructive, .Cancel) with different UI but you can create a new type by using the struct MIAlertController.Button.Config
    • config.font -> the font of the button
    • config.textColor -> the color of the button's text
    • config.textAlignment -> the alignment of the button's text
    • config.backgroundColor -> the background color of the button
    • config.buttonHeight -> the height of the button
    • config.contentEdgeOffset -> the edge offset of the button


// Alert UI and behavior
var googlishAlertControllerConfig = MIAlertController.Config()

googlishAlertControllerConfig.firstButtonRatio = 0.8
googlishAlertControllerConfig.alertViewCornerRadius = 1
googlishAlertControllerConfig.messageLabelTextColor = UIColor(white: 0.45, alpha: 1)

googlishAlertControllerConfig.messageVerticalSpaceFromTitle = 25
googlishAlertControllerConfig.messageLabelFont = UIFont.systemFontOfSize(17)

googlishAlertControllerConfig.alertMarginSize = CGSize(width: 10, height: 10)
googlishAlertControllerConfig.alertViewMaxSize = CGSize(width: UIScreen.mainScreen().bounds.size.width - 80, height: 340)

googlishAlertControllerConfig.titleLabelTextAlignment = NSTextAlignment.Left
googlishAlertControllerConfig.messageLabelTextAlignment = NSTextAlignment.Left

// Buttons UI
var googlishAlertControllerLeftButtonConfig = MIAlertController.Button.Config()

googlishAlertControllerLeftButtonConfig.textColor = UIColor(red: 19/255.0, green: 152/255.0, blue: 138/255.0, alpha: 1)
googlishAlertControllerLeftButtonConfig.textAlignment = .Right
googlishAlertControllerLeftButtonConfig.font = UIFont.boldSystemFontOfSize(15)

var googlishAlertControllerRightButtonConfig = MIAlertController.Button.Config()

googlishAlertControllerRightButtonConfig.textColor = UIColor(red: 19/255.0, green: 152/255.0, blue: 138/255.0, alpha: 1)
googlishAlertControllerRightButtonConfig.font = UIFont.boldSystemFontOfSize(15)

let alertController = MIAlertController(
  title: "I'm a googlish alert!",
  message: "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris",
  config: googlishAlertControllerConfig

  MIAlertController.Button(title: "COOL", config: googlishAlertControllerLeftButtonConfig, action: {
    print("cool tapped")

  MIAlertController.Button(title: "OK", config: googlishAlertControllerRightButtonConfig, action: {
    print("ok tapped")


#Demo In this repository you can also find a demo.


If you like this git you can follow me here or on twitter :) @MarioIannotta

Cheers from Italy!