LSMessages 1.0.3

LSMessages 1.0.3

测试已测试
Lang语言 Obj-CObjective C
许可证 自定义
发布最新发布2017年12月

lisa718维护。



  • lisa

LSMessages 组件的主要功能是

第一阶段
1、可以按调用先后顺序展示多条提示信息
2、可以手动让当前正在展示的消息消失,比如点击整个 view 或者点击另一个 button

只能在本 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 和点击反馈(已支持)

类设计

LSMessage--管理类,调度类

它是外部接口类,也是展示提示信息调用的管理类,它实现了以上“主要功能”的内容
方案一
它如果不创建 view,就要存储用户调用的 model,每次创建一个 view,这里不需要 model,将提示信息直接放入成员数组中存储
方案二:
放入 NSOperationQueue 中,执行时再创建 view,需要 model,放入 NSOperation 中

成员

方案一:NSArray *_messageView
方案二: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;

McokTSMessageView -- View 类

UI展示提示信息样式:
icon左侧
title
subtitle
背景blur XXXX
button

动画(完成)

根据传入 pos 来做动画
自上而下出现,动画
自下而上出现,动画

消失动画,相反

支持横竖屏(完成)

适配 iPhone X

指定位置进行展示

用法

要显示通知,使用以下代码

您可以定义默认的 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;
}

在创建新的通知时可以设置以下属性

  • viewController:显示通知的 view controller。这可能是一个导航控制器。
  • title:通知视图的标题
  • subtitle:位于标题下方的文本(可选)
  • image:用于替代默认图标的自定义图标图像(可选)
  • type:通知类型(消息、警告、错误、成功)
  • duration:通知应显示的时长
  • callback:当用户通过单击消息或将其向上滑动来取消消息时,应该执行的块。

除了标题和通知类型外,所有列出的值都是可选的

如果不想显示详细描述(标题下的文本),则无需设置。通知将自动正确调整大小。

屏幕截图

iOS 7 设计

iOS 7 Error

iOS 7 Message

iOS 6 设计

Warning

Success

Error

Message

许可证

TSMessages 在 MIT 许可证下可用。有关更多信息,请参阅 LICENSE 文件。

最近变更

在此存储库的发布部分可找到。