# LGAlertView Customizable implementation of UIAlertViewController, UIAlertView and UIActionSheet. All in one. You can customize every detail. Make AlertView of your dream! :) ## Preview ### Default Alert View Style ### Default Action Sheet Style ### Custom Alert View Styles ### Custom Action Sheet Styles ## Installation ### With source code [Download repository](https://github.com/Friend-LGA/LGAlertView/archive/master.zip), then add [LGAlertView directory](https://github.com/Friend-LGA/LGAlertView/blob/master/LGAlertView/) to your project. ### With CocoaPods CocoaPods is a dependency manager for Objective-C, which automates and simplifies the process of using 3rd-party libraries in your projects. To install with cocoaPods, follow the "Get Started" section on [CocoaPods](https://cocoapods.org/). #### Podfile ```ruby platform :ios, '6.0' pod 'LGAlertView', '~> 2.0.0' ``` ### With Carthage Carthage is a lightweight dependency manager for Swift and Objective-C. It leverages CocoaTouch modules and is less invasive than CocoaPods. To install with carthage, follow the instruction on [Carthage](https://github.com/Carthage/Carthage/). #### Cartfile ``` github "Friend-LGA/LGAlertView" ~> 2.0.0 ``` ## Usage In the source files where you need to use the library, import the header file: ```objective-c #import "LGAlertView.h" ``` ### Initialization You have several methods for initialization: ```objective-c - (instancetype)initWithTitle:(NSString *)title message:(NSString *)message style:(LGAlertViewStyle)style buttonTitles:(NSArray *)buttonTitles cancelButtonTitle:(NSString *)cancelButtonTitle destructiveButtonTitle:(NSString *)destructiveButtonTitle; - (instancetype)initWithViewAndTitle:(NSString *)title message:(NSString *)message style:(LGAlertViewStyle)style view:(UIView *)view buttonTitles:(NSArray *)buttonTitles cancelButtonTitle:(NSString *)cancelButtonTitle destructiveButtonTitle:(NSString *)destructiveButtonTitle; - (instancetype)initWithActivityIndicatorAndTitle:(NSString *)title message:(NSString *)message style:(LGAlertViewStyle)style buttonTitles:(NSArray *)buttonTitles cancelButtonTitle:(NSString *)cancelButtonTitle destructiveButtonTitle:(NSString *)destructiveButtonTitle; - (instancetype)initWithProgressViewAndTitle:(NSString *)title message:(NSString *)message style:(LGAlertViewStyle)style progressLabelText:(NSString *)progressLabelText buttonTitles:(NSArray *)buttonTitles cancelButtonTitle:(NSString *)cancelButtonTitle destructiveButtonTitle:(NSString *)destructiveButtonTitle; - (instancetype)initWithTextFieldsAndTitle:(NSString *)title message:(NSString *)message numberOfTextFields:(NSUInteger)numberOfTextFields textFieldsSetupHandler:(void(^)(UITextField *textField, NSUInteger index))textFieldsSetupHandler buttonTitles:(NSArray *)buttonTitles cancelButtonTitle:(NSString *)cancelButtonTitle destructiveButtonTitle:(NSString *)destructiveButtonTitle; ``` More init methods you can find in [LGAlertView.h](https://github.com/Friend-LGA/LGAlertView/blob/master/LGAlertView/LGAlertView.h) ### Handle actions To handle actions you can use blocks, delegate, or notifications: #### Delegate ```objective-c @property (assign, nonatomic) id delegate; - (void)alertViewWillShow:(LGAlertView *)alertView; - (void)alertViewWillDismiss:(LGAlertView *)alertView; - (void)alertViewDidShow:(LGAlertView *)alertView; - (void)alertViewDidDismiss:(LGAlertView *)alertView; - (void)alertView:(LGAlertView *)alertView buttonPressedWithTitle:(NSString *)title index:(NSUInteger)index; - (void)alertViewCancelled:(LGAlertView *)alertView; - (void)alertViewDestructiveButtonPressed:(LGAlertView *)alertView; ``` #### Blocks ```objective-c @property (strong, nonatomic) void (^willShowHandler)(LGAlertView *alertView); @property (strong, nonatomic) void (^willDismissHandler)(LGAlertView *alertView); @property (strong, nonatomic) void (^didShowHandler)(LGAlertView *alertView); @property (strong, nonatomic) void (^didDismissHandler)(LGAlertView *alertView); @property (strong, nonatomic) void (^actionHandler)(LGAlertView *alertView, NSString *title, NSUInteger index); @property (strong, nonatomic) void (^cancelHandler)(LGAlertView *alertView, BOOL onButton); @property (strong, nonatomic) void (^destructiveHandler)(LGAlertView *alertView); ``` #### Notifications ```objective-c kLGAlertViewWillShowNotification; kLGAlertViewWillDismissNotification; kLGAlertViewDidShowNotification; kLGAlertViewDidDismissNotification; kLGAlertViewActionNotification; kLGAlertViewCancelNotification; kLGAlertViewDestructiveNotification; ``` ### More For more details try Xcode [Demo project](https://github.com/Friend-LGA/LGAlertView/blob/master/Demo) and see [LGAlertView.h](https://github.com/Friend-LGA/LGAlertView/blob/master/LGAlertView/LGAlertView.h) ## License LGAlertView is released under the MIT license. See [LICENSE](https://raw.githubusercontent.com/Friend-LGA/LGAlertView/master/LICENSE) for details.