I want to achieve following custom view over UIViewController
. What is the best way to acheive it rather then using addSubview I want to use some thing better.
AddSubview for UIAlertView is not possible from iOS 7.
The only way is to create a custom UIView subclass which can act as UIAlertView.
The linked one https://github.com/wimagguc/ios-custom-alertview seems to work well. By putting proper version check one can identify to go for native UIAlertView or CustomAlertView.
Use a Modal presentation with OverFullScreen
mode. Set the background of the ViewController's view to transparent and place your custom view in the center of it.
Easiest would be to use storyboards. Create a view controller with your custom view in the center. Otherwise, you need to call view.addSubView(..)
to place your custom view on the center and create the constraints accordingly.
To present this view controller you can create a segue or by code presentViewController(...)
. Don't forget to set the modalPresentationStyle
to OverFullScreen
.
No library required.
Try CRToast I have been using it in my project. Create a util class do the config there.
+(NSDictionary *)setupAlertWithMessage:(NSString *) message withError:(BOOL) error{
NSDictionary *options;
if(error){
options = @{
kCRToastTextKey : message,
kCRToastNotificationTypeKey:@(CRToastPresentationTypePush),
kCRToastNotificationPresentationTypeKey:@(CRToastPresentationTypePush),
kCRToastTextAlignmentKey : @(NSTextAlignmentCenter),
kCRToastBackgroundColorKey : [UIColor colorWithRed:234/255.0 green:85/255.0 blue:72/255.0 alpha:1.0],
kCRToastAnimationInTypeKey : @(CRToastAnimationTypeSpring),
kCRToastAnimationOutTypeKey : @(CRToastAnimationTypeSpring),
kCRToastAnimationInDirectionKey : @(CRToastAnimationDirectionTop),
kCRToastAnimationOutDirectionKey : @(CRToastAnimationDirectionBottom)
};
}else{
options = @{
kCRToastTextKey : message,
kCRToastNotificationTypeKey:@(CRToastPresentationTypePush),
kCRToastNotificationPresentationTypeKey:@(CRToastPresentationTypePush),
kCRToastTextAlignmentKey : @(NSTextAlignmentCenter),
kCRToastBackgroundColorKey :[UIColor colorWithRed:65/255.0 green:165/255.0 blue:151/255.0 alpha:1.0],
kCRToastAnimationInTypeKey : @(CRToastAnimationTypeSpring),
kCRToastAnimationOutTypeKey : @(CRToastAnimationTypeSpring),
kCRToastAnimationInDirectionKey : @(CRToastAnimationDirectionTop),
kCRToastAnimationOutDirectionKey : @(CRToastAnimationDirectionBottom)
};
}
return options;
}
Then import your util class where ever you need to then use it this way:
[CRToastManager showNotificationWithOptions:[MyRateUtil setupAlertWithMessage:@"Alert!" withError:YES/NO]
completionBlock:^{
}];