Dropdown notification view for iOS

AFDropdownNotification

Dropdown notification view for iOS

Installation

If you're using CocoaPods, just add this line to your Podfile:

pod 'AFDropdownNotification', '~> 1.0'

If you're not, import these files to your project:

AFDropdownNotification.h
AFDropdownNotification.m

Usage

First of all, init your AFDropdownNotification class and set your main class as AFDropdownNotificationDelegate:

AFDropdownNotification *notification = [[AFDropdownNotification alloc] init];
notification.notificationDelegate = self;

You can configure the title text with the titleText property, the subtitle text with subtitleText, an optional left image defined as image, and two optional buttons, with topButtonText and bottomButtonText. For example:

notification.titleText = @"Update available";
notification.subtitleText = @"Do you want to download the update of this file?";
notification.image = [UIImage imageNamed:@"update"];
notification.topButtonText = @"Accept";
notification.bottomButtonText = @"Cancel";

If you want to hide the notification by tapping it, set dimissOnTap to YES:

notification.dismissOnTap = YES;

To present it, you can choose if you want to use UIKit dynamics (which will include a subtle bounce) or a regular lineal UIKit animation:

[notification presentInView:self.view withGravityAnimation:YES];

Finally, to handle the buttons taps, implement the two methods defined by the delegate, -dropdownNotificationTopButtonTapped and -dropdownNotificationBottomButtonTapped.

-(void)dropdownNotificationTopButtonTapped {
 
    NSLog(@"Top button tapped");
}

-(void)dropdownNotificationBottomButtonTapped {

    NSLog(@"Bottom button tapped");
}

Also, you can use blocks:

[_notification listenEventsWithBlock:^(AFDropdownNotificationEvent event) {
       
    switch (event) {
        case AFDropdownNotificationEventTopButton:
            // Top button
            break;
                
        case AFDropdownNotificationEventBottomButton:
            // Bottom button
            break;
                
        case AFDropdownNotificationEventTap:
            // Tap
            break;
                
        default:
            break;
    }
}];

GitHub