只能在本 viewcontroller 展示
1)、在目的 viewcontroller 内部或者全局展示提示 View – McokTSMessageView
2)、退出当前 viewcontroller,则需要自动或者手动清除在当前 viewcontroller 中调用的 View
LSMessage showMessageInViewController
LSMessage removeMessageInViewController
能在全局或指定的全局 controller 展示,不在某个 viewcontroller 展示
类方法处理
1)、在某个 viewcontroller 调用,但是 viewcontroller 退出,需要继续在别的页面展示消息
LSMessage showMessageWithTitle
因此组件提供类方法并将对接类设置为单例
以下是支持的信息类型:
2、展示内容:成功、失败、错误、消息
3、展示位置:调用 controller 的顶部、底部、navbar 之上
4、展示时长:自动消失、不能自动消失(需要点击本 view 的按钮进行消失)
第二阶段
可以支持 button 和点击反馈(已支持)
它是外部接口类,也是展示提示信息调用的管理类,它实现了以上“主要功能”的内容
方案一
它如果不创建 view,就要存储用户调用的 model,每次创建一个 view,这里不需要 model,将提示信息直接放入成员数组中存储
方案二:
放入 NSOperationQueue 中,执行时再创建 view,需要 model,放入 NSOperation 中
方案一:NSArray
方案二:NSOperationQueue 队列中
添加消息 view:调用 showMessage 系列方法时
删除消息 view:
单例
[TSMessage showMessageWithTitle:@"Your Title"
subtitle:@"A description"
type:TSMessageNotificationTypeError];
// Add a button inside the message
[TSMessage showMessageInViewController:self
title:@"Update available"
subtitle:@"Please update the app"
image:nil
type:TSMessageNotificationTypeMessage
duration:TSMessageMessageDurationAutomatic
callback:nil
buttonTitle:@"Update"
buttonCallback:^{
NSLog(@"User tapped the button");
}
atPosition:TSMessageNotificationPositionTop
canBeDismissedByUser:YES];
+ (BOOL)dissmissActiveMessage;
UI展示提示信息样式:
icon左侧
title
subtitle
背景blur XXXX
button
根据传入 pos 来做动画
自上而下出现,动画
自下而上出现,动画
消失动画,相反
要显示通知,使用以下代码
您可以定义默认的 view controller,其中应显示通知。这可能是一个导航控制器。
[TSMessage setDefaultViewController:myNavController];
您可以定义默认的 view controller,其中应显示通知。这可能是一个导航控制器。
[TSMessage setDelegate:self];
...
- (CGFloat)messageLocationOfMessageView:(TSMessageView *)messageView
{
return messageView.viewController...; // any calculation here
}
您可以在显示之前自定义消息视图,例如设置 alpha 值或添加自定义子视图
[TSMessage setDelegate:self];
...
- (void)customizeMessageView:(TSMessageView *)messageView
{
messageView.alpha = 0.4;
[messageView addSubview:...];
}
您可以使用 UIAppearance 来自定义消息视图元素
#import <TSMessages/TSMessageView.h>
@implementation TSAppDelegate
....
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
//If you want you can overidde some properties using UIAppearance
[[TSMessageView appearance] setTitleFont:[UIFont boldSystemFontOfSize:6]];
[[TSMessageView appearance] setTitleTextColor:[UIColor redColor]];
[[TSMessageView appearance] setContentFont:[UIFont boldSystemFontOfSize:10]];
[[TSMessageView appearance]setContentTextColor:[UIColor greenColor]];
[[TSMessageView appearance]setErrorIcon:[UIImage imageNamed:@"NotificationButtonBackground"]];
[[TSMessageView appearance]setSuccessIcon:[UIImage imageNamed:@"NotificationButtonBackground"]];
[[TSMessageView appearance]setMessageIcon:[UIImage imageNamed:@"NotificationButtonBackground"]];
[[TSMessageView appearance]setWarningIcon:[UIImage imageNamed:@"NotificationButtonBackground"]];
//End of override
return YES;
}
在创建新的通知时可以设置以下属性
除了标题和通知类型外,所有列出的值都是可选的
如果不想显示详细描述(标题下的文本),则无需设置。通知将自动正确调整大小。
iOS 7 设计
iOS 6 设计
TSMessages 在 MIT 许可证下可用。有关更多信息,请参阅 LICENSE 文件。
在此存储库的发布部分可找到。