4

Are there any useful notification patterns in iOS7 for alerting users that an action (such as a download) completed successfully? A comparison would be Android's 'Toast' notification. I couldn't find any in the Apple HIG docs.

Note: This isn't the same case of an alert where a user needs to be interrupted from their actions in order to close or choose something.

2
  • From what I've read about "toast" - these are notification that appear inside for a time - then fade away. Is this the capability/experience you are referring to? In other words, not a notification outside the app.
    – Josh Bruce
    Commented Nov 11, 2013 at 4:39
  • Is this notification only visible within your app, or is it system wide (i.e. user has switched to another app while waiting)?
    – Erics
    Commented Nov 13, 2013 at 8:15

3 Answers 3

3

The only solution I can think of is the notification banner, which has been around since iOS5. The notification ends up in Notification Center, which is good because you also get it on your screen when you weren't looking at the phone.

iOS notification banner

1

Upon further reading on what "Toasts" are, I will assume you are referring to feedback mechanism to let a user know something is happening (or did happen) inside the app - not externally through Notification Center (which can be disabled by the user).

The typical design pattern in these instances is a progress bar with a text description.

  1. For example, in Mail, when sending a message, the toolbar (bottom of screen) says, "sending..." and there is a progress bar at the top of the toolbar letting the user know the progress of the send.
  2. Another example, is in Messages, wherein the Navigation Bar (top of the screen) says, "sending..." and there is a progress bar at the bottom of the Navigation Bar.
  3. Downloading a book in iBooks shows the book with a progress bar inside the cover - no text.
  4. Updating an app shows radial (circular) progress meter to inform the user of progress.
  5. For a non-native variation - the Facebook app uses a progress bar + checkmark when users post to their account.

There is also a discussion in the 2013 WWDC videos which require a developer account to watch, where they describe one of the philosophies behind iOS 7 as increasing textual feedback. So, you can also create a label inside of Interface Builder - positioning it using auto layout (or programmatically) - then you can just show and hide the label using something like the following:

-(void)displayBurstNotificationMessage:(NSString*)message forLabel:(UILabel*)label {
    label.text = message;

    [UIView animateWithDuration:0.25 
                     animations:^{
        label.alpha = 1.0; //fade in

    } completion:^(BOOL finished) {
        [UIView animateWithDuration:0.5 
                              delay:5 
                            options:0 
                         animations:^{
            label.alpha = 0.0; //fade out

        } completion:nil];
    }];
}

Which would make the label fade into existence (notificationLabel.alpha = 1.0) over a quarter of a second (animateWithDuration) - and, when done fading in, wait 5 seconds (delay), before fading out (notification.alpha = 0.0) over half a second (animateWithDuration) without any type of completion handling.

EDIT: I added the "label" bit because you may want to have different labels for different concepts/positions. This way the method will work with any label on screen.

EDIT 2: I was looking at the Calendar app today and noticed a notification pattern in the month view. When scrolling quickly through the months a small banner appears with the month name and year just below the navigation controller - then fades away.

Hope that helps.

0

I had the same sort of need in one of my applications and couldn't find a Toast-like UI control in iOS either. In the end, I just created my own.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.