Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
We at Guru software really love toast notifications available on android OS, so we've built a similar feature for the IOS enabled devices.
Objective-C Ruby
Branch: master

Merge pull request #37 from heramerom/patch-1

On iOS 8 the window is already rotated, so do not rotate again!
latest commit 3dfae26147
@ecstasy2 authored

README.md

What is iToast

This page tells you what toast notifications are and why you may need them in your iPhone/iPad application.


If you develop already for Android, then you know what it is so you can skip to the next section.

For the others of us: a toast is a spécial way to display 'non intrusive' message to the user. Those message are displayed on a configurable place on the screen and they disapear after a configurable time interval. The way they appear is similar to the way the Growl app (on mac do).

Difference between iToast and Toast on Android

  • The iToasts disapear when tapped by the user even if the configured time is not elapsed.
  • iToasts can have an image-icon attached to them (info, warning, error).
  • There is application wide configuration object that you can use so that all your iToast looks the same.
  • We are planning to add a plug-in based system so that we can offer many look'n feel for the toasts instead of the default.
  • iToast advertise the chaining of call so that you can create any toast with any configuration in on instruction.

Benefits of using Toast

Some benefits are:

  • The user is not distracted by such alert and just notice them: he don't need to click "Ok". As a rule of thumb we use iToast now everywhere we would have put a UIAlertView with only a single Button.
  • You can add it anywhere on the screen depending of the importance of the iToast. We display them with a gravity of Top when it is of medium importance, Center when it is Very importan an Bottom when it is of low importance. # How to use iToast.

Simple Usage

There is only one way to create an iToast: so you won't need to retain much. In it basic form, you create an iToast this way:

[[iToast makeText:NSLocalizedString(@"The activity has been successfully saved.", @"")] show];

Chaining calls

Like in jQuery, you can chain call and terminate by using the show method, there are many things you can configure. Look bellow.

[[[iToast makeText:NSLocalizedString(@"The activity has been successfully saved.", @"")] 
            setGravity:iToastGravityBottom] show];

Note : Above the gravity can be any of iToastGravityBottom, iToastGravityTop, iToastGravityCenter.

  • You can also provide the a physical position on the screen: see the class interface.
  • You can provide two offset value that will be added to the actual position of the iToast: you can use this to either move it a few pixel to the left (negative offsetLeft), right (positive offsetLeft), top or bottom.

Or

[[[[iToast makeText:NSLocalizedString(@"Something to display a very long time", @"")] 
                    setGravity:iToastGravityBottom] setDuration:iToastDurationLong] show];

Note : Above the duration can be any integer (the number of millisecond to display it). There is Three preset you can use for duration:

  • iToastDurationLong
  • iToastDurationShort
  • iToastDurationNormal

The Interface

@interface iToast : NSObject {
    iToastSettings *_settings;
    NSInteger offsetLeft;
    NSInteger offsetTop;

    NSTimer *timer;

    UIView *view;
    NSString *text;
}

- (void) show;

- (iToast *) setDuration:(NSInteger ) duration;
- (iToast *) setGravity:(iToastGravity) gravity 
             offsetLeft:(NSInteger) left
             offsetTop:(NSInteger) top;
- (iToast *) setGravity:(iToastGravity) gravity;
- (iToast *) setPostion:(CGPoint) position;

+ (iToast *) makeText:(NSString *) text;

-(iToastSettings *) theSettings;

@end

The Shared Settings

You don't need to set all the settings each time you want to show an iToast. There is a shared settings repo that each iToast copy it setting when first created.

To modify the shared setting, you first obtain the shared settings like:

iToastSettings *theSettings = [iToastSettings getSharedSettings];

Then you change the settings:

theSettings.duration = 4000;

The interface of the SharedSettings

 @interface iToastSettings : NSObject<NSCopying>{
NSInteger duration;
iToastGravity gravity;
CGPoint postition;
iToastType toastType;

NSDictionary *images;

BOOL positionIsSet;
}


@property(assign) NSInteger duration;
@property(assign) iToastGravity gravity;
@property(assign) CGPoint postition;
@property(readonly) NSDictionary *images;


- (void) setImage:(UIImage *)img forType:(iToastType) type;
+ (iToastSettings *) getSharedSettings;

@end

Not yet implemented

You are interested by those features? write the code and share with the community.

  • Display of icons based of the type of iToast.
  • Plugin based interface to customize the toasts.

Showing your appreciation

A few people already requested it, so now it's here: a Flattr button.

Flattr this

Something went wrong with that request. Please try again.