Customizable implementation of UIAlertViewController, UIAlertView and UIActionSheet. All in one. You can customize every detail. Make AlertView of your dream! :)
Download repository, then add LGAlertView directory to your project.
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.
platform :ios, '6.0'
pod 'LGAlertView', '~> 2.0.0'
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.
github "Friend-LGA/LGAlertView" ~> 2.0.0
In the source files where you need to use the library, import the header file:
#import "LGAlertView.h"
You have several methods for initialization:
- (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
To handle actions you can use blocks, delegate, or notifications:
@property (assign, nonatomic) id<LGAlertViewDelegate> 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;
@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);
kLGAlertViewWillShowNotification;
kLGAlertViewWillDismissNotification;
kLGAlertViewDidShowNotification;
kLGAlertViewDidDismissNotification;
kLGAlertViewActionNotification;
kLGAlertViewCancelNotification;
kLGAlertViewDestructiveNotification;
For more details try Xcode Demo project and see LGAlertView.h
LGAlertView is released under the MIT license. See LICENSE for details.