1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
|
//
// TSMessage.h
// Toursprung
//
// Created by Felix Krause on 24.08.12.
// Copyright (c) 2012 Toursprung. All rights reserved.
//
#import <UIKit/UIKit.h>
typedef enum {
TSMessageNotificationTypeMessage = 0,
TSMessageNotificationTypeWarning,
TSMessageNotificationTypeError,
TSMessageNotificationTypeSuccess
} TSMessageNotificationType;
typedef enum {
TSMessageNotificationPositionTop = 0,
TSMessageNotificationPositionBottom
} TSMessageNotificationPosition;
/** This enum can be passed to the duration parameter */
typedef enum {
TSMessageNotificationDurationAutomatic = 0,
TSMessageNotificationDurationEndless = -1 // The notification is displayed until the user dismissed it or it is dismissed by calling dismissActiveNotification
} TSMessageNotificationDuration;
@interface TSMessage : NSObject
+ (instancetype)sharedMessage;
/** Indicates whether a notification is currently active. */
+ (BOOL)isNotificationActive;
/** Shows a notification message
@param message The title of the notification view
@param type The notification type (Message, Warning, Error, Success)
*/
+ (void)showNotificationWithMessage:(NSString *)message
withType:(TSMessageNotificationType)type;
/** Shows a notification message
@param title The title of the notification view
@param message The message that is displayed underneath the title
@param type The notification type (Message, Warning, Error, Success)
*/
+ (void)showNotificationWithTitle:(NSString *)title
withMessage:(NSString *)message
withType:(TSMessageNotificationType)type;
/** Shows a notification message in a specific view controller
@param viewController The view controller to show the notification in.
@param title The title of the notification view
@param message The message that is displayed underneath the title
@param type The notification type (Message, Warning, Error, Success)
*/
+ (void)showNotificationInViewController:(UIViewController *)viewController
withTitle:(NSString *)title
withMessage:(NSString *)message
withType:(TSMessageNotificationType)type;
/** Shows a notification message in a specific view controller
@param viewController The view controller to show the notification in.
@param title The title of the notification view
@param message The message that is displayed underneath the title
@param type The notification type (Message, Warning, Error, Success)
@param duration The duration of the notification being displayed
*/
+ (void)showNotificationInViewController:(UIViewController *)viewController
withTitle:(NSString *)title
withMessage:(NSString *)message
withType:(TSMessageNotificationType)type
withDuration:(NSTimeInterval)duration;
/** Shows a notification message in a specific view controller
@param viewController The view controller to show the notification in.
@param title The title of the notification view
@param message The message that is displayed underneath the title
@param type The notification type (Message, Warning, Error, Success)
@param duration The duration of the notification being displayed
@param callback The block that should be executed, when the user tapped on the message
*/
+ (void)showNotificationInViewController:(UIViewController *)viewController
withTitle:(NSString *)title
withMessage:(NSString *)message
withType:(TSMessageNotificationType)type
withDuration:(NSTimeInterval)duration
withCallback:(void (^)())callback;
/** Shows a notification message in a specific view controller
@param viewController The view controller to show the notification in.
@param title The title of the notification view
@param message The message that is displayed underneath the title
@param type The notification type (Message, Warning, Error, Success)
@param duration The duration of the notification being displayed
@param callback The block that should be executed, when the user tapped on the message
@param position The position of the message on the screen
*/
+ (void)showNotificationInViewController:(UIViewController *)viewController
withTitle:(NSString *)title
withMessage:(NSString *)message
withType:(TSMessageNotificationType)type
withDuration:(NSTimeInterval)duration
withCallback:(void (^)())callback
atPosition:(TSMessageNotificationPosition)messagePosition;
/** Shows a notification message in a specific view controller
@param viewController The view controller to show the notification in.
@param title The title of the notification view
@param message The message that is displayed underneath the title
@param type The notification type (Message, Warning, Error, Success)
@param duration The duration of the notification being displayed
@param callback The block that should be executed, when the user tapped on the message
@param buttonTitle The title for button (optional)
@param buttonCallback The block that should be executed, when the user tapped on the button
@param position The position of the message on the screen
@param dismissingEnabled Should the message be dismissed when the user taps/swipes it
*/
+ (void)showNotificationInViewController:(UIViewController *)viewController
withTitle:(NSString *)title
withMessage:(NSString *)message
withType:(TSMessageNotificationType)type
withDuration:(NSTimeInterval)duration
withCallback:(void (^)())callback
withButtonTitle:(NSString *)buttonTitle
withButtonCallback:(void (^)())buttonCallback
atPosition:(TSMessageNotificationPosition)messagePosition
canBeDismisedByUser:(BOOL)dismissingEnabled;
/** Fades out the currently displayed notification. If another notification is in the queue,
the next one will be displayed automatically
@return YES if the currently displayed notification could be hidden. NO if no notification
was currently displayed.
*/
+ (BOOL)dismissActiveNotification;
/** Shows a predefined error message, that is displayed, when this action requires an internet connection */
+ (void)showInternetError;
/** Shows a predefined error message, that is displayed, when this action requires location services */
+ (void)showLocationError;
/** Implement this in subclass to set a default view controller */
+ (UIViewController *)defaultViewController;
/** Can be implemented differently in subclass. Is used to define the top position from which the notification flies in from */
+ (CGFloat)navigationbarBottomOfViewController:(UIViewController *)viewController;
@end
|