Latest 1.0
Homepage https://github.com/ntnhon/MaterialActionSheetController
License MIT
Platforms ios 8.0
Authors

Lightweight and totally customizable. Create and present it the way you do with UIAlertController.

Version
License
Platform

Screenshots

  • Demo
Default light theme Dark theme Custom header

Features

  • [x] Using closures to configure actions
  • [x] Action with optional icon and accessory view
  • [x] Handling touch on accessory view
  • [x] Separate long action list in sections
  • [x] 2 built-in themes: light & dark
  • [x] Customizable header

Todos

  • Swift 3 compliant
  • Present on iPad as a pop-up

Requirements

  • iOS 8.0+
  • Xcode 7.3

Installation

CocoaPods

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

pod 'MaterialActionSheetController'

Manually

Add MaterialActionSheetController.swift to your project

Usage

// Import MaterialActionSheetController if you're using CocoaPods
import MaterialActionSheetController
// Create an action
let lightBulbAction = MaterialAction(
        icon: UIImage(named: "lightbulb"),
        title: "Action with UISwitch as an accessory view", handler: { [unowned self] (accessoryView) in
            self.doSomething()
        }, 
        accessoryView: UISwitch(), 
        dismissOnAccessoryTouch: true, 
        accessoryHandler: { [unowned self] (accessoryView) in
            if let lightBulbSwitch = accessoryView as? UISwitch {
                if accessoryView.on {
                    print("Light is ON!")
                } else {
                    print("Light is OFF!")
                }
            }
            self.doSomeOtherThing()
    })
// Then create and present your MaterialActionSheetController
// parameter sections is a variadic which take a flexible list of section
let materialActionSheetController = MaterialActionSheetController(
        title: "A nice title",
        message: "A friendly message",
        actionSections: [aCoolAction, anotherCoolAction], [cancelAction])

// Customize theme
materialActionSheetController.theme = MaterialActionSheetTheme.dark()

// Custom header view
let imageView = UIImageView(image: UIImage(named: "myimage"))
imageView.bounds = CGRect(origin: CGPoint.zero, size: CGSize(width: 300, height: 100))
materialActionSheetController.customHeaderView = imageView

presentViewController(materialActionSheetController, animated: true, completion: nil)

See code in demo for more detailed examples.

Contribute

Feel free to make PR, contributions are warmly welcome and appreciated.

License

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

Latest podspec

{
    "name": "MaterialActionSheetController",
    "version": "1.0",
    "summary": "A Google like action sheet for iOS written in Swift.",
    "description": "Lightweight and totally customizable. Create and present it the way you do with UIAlertController.",
    "homepage": "https://github.com/ntnhon/MaterialActionSheetController",
    "screenshots": [
        "https://raw.githubusercontent.com/ntnhon/MaterialActionSheetController/6f438d03c118c8e19bac792bdeef9383f0991e67/Screenshots/Full_option_light.png",
        "https://raw.githubusercontent.com/ntnhon/MaterialActionSheetController/6f438d03c118c8e19bac792bdeef9383f0991e67/Screenshots/Full_option_dark.png",
        "https://raw.githubusercontent.com/ntnhon/MaterialActionSheetController/6f438d03c118c8e19bac792bdeef9383f0991e67/Screenshots/Custom_header_light.png"
    ],
    "license": {
        "type": "MIT",
        "file": "LICENSE"
    },
    "authors": {
        "Thanh-Nhon Nguyen": "[email protected]"
    },
    "source": {
        "git": "https://github.com/ntnhon/MaterialActionSheetController.git",
        "tag": "1.0"
    },
    "platforms": {
        "ios": "8.0"
    },
    "source_files": "MaterialActionSheetController/Classes/**/*"
}

Pin It on Pinterest

Share This