前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >TSMessages,非HUD风格的iOS提示框(附官方demo BUG修复方案)

TSMessages,非HUD风格的iOS提示框(附官方demo BUG修复方案)

作者头像
ios122
发布2018-01-02 19:10:12
9700
发布2018-01-02 19:10:12
举报

优势

  • 先看效果
  • 个人觉得这种提示效果用在UITableView上要比HUD优雅美观,而其他情况下的提示,用HUD比较好
  • 源码简介易懂,用起来也很方便

导入

pod导入相对很简单,主要讲怎么手动导入这个库

  • 下载(https://github.com/KrauseFx/TSMessages),这个文件管理的不好,用到的东西比较分散,首先,将TSMessages-master/Pod/Classes下所有文件拖到工程里,然后将TSMessages-master/Example/Pods/HexColors/Classes中的两个文件导入
  • 引用头文件#import "TSMessageView.h"

使用

  • TSMessageNotificationType:提示样式,包含 TSMessageNotificationTypeMessage,TSMessageNotificationTypeWarning,TSMessageNotificationTypeError,TSMessageNotificationTypeSuccess,分别用来做展示信息,提示警告,提示错误,提示成功
  • TSMessageNotificationPosition:提示位置,包含 TSMessageNotificationPositionTop,TSMessageNotificationPositionNavBarOverlay,TSMessageNotificationPositionBottom,分别展示在顶部(有NavigationBar的话紧挨着它),遮挡NavigationBar(实际测试并不好用),底部
  • TSMessageNotificationDuration:提示消失方式,包含 TSMessageNotificationDurationAutomatic,TSMessageNotificationDurationEndless,含义是自动消失和手动消失

最基本用法

代码语言:javascript
复制
[TSMessage showNotificationWithTitle:@"标题"
                            subtitle:@"详细信息"
                                type:TSMessageNotificationTypeError];

按钮点击事件,自定义图片

代码语言:javascript
复制
[TSMessage showNotificationInViewController:self
                                      title:@"标题"
                                   subtitle:@"详细信息"
                                      image:nil
                                       type:TSMessageNotificationTypeMessage
                                   duration:TSMessageNotificationDurationAutomatic
                                   callback:nil
                                buttonTitle:@"按钮标题"
                             buttonCallback:^{
                                 NSLog(@"按钮事件");
                             }
                                 atPosition:TSMessageNotificationPositionTop
                       canBeDismissedByUser:YES]; 

自定义展示样式

代码语言:javascript
复制
[[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"]];//自定义警告图片

官方demo修改成遮挡NavigationBar样式效果也不好,提示信息被NAvigationBar遮挡,但demo上有一个很好的处理思路,先把NavigationBar隐藏,待提示消失后再展示出来

修改方法

首先你的样式应该是 TSMessageNotificationPositionNavBarOverlay,如:

代码语言:javascript
复制
if (self.navigationController.navigationBarHidden == NO) {
    self.navigationController.navigationBarHidden = YES;
}//必须要加
    
[TSMessage showNotificationInViewController:self
                                      title:@"标题"
                                   subtitle:@"详细信息"
                                      image:nil
                                       type:TSMessageNotificationTypeMessage
                                   duration:TSMessageNotificationDurationAutomatic
                                   callback:nil
                                buttonTitle:@"按钮标题"
                             buttonCallback:^{
                                 NSLog(@"按钮事件");
                             }
                                 atPosition:TSMessageNotificationPositionNavBarOverlay
                       canBeDismissedByUser:YES];

然后在

代码语言:javascript
复制
    - (void)fadeOutNotification:(TSMessageView *)currentView animationFinishedBlock:(void (^)())animationFinished

方法下加入

代码语言:javascript
复制
if (currentView.messagePosition == TSMessageNotificationPositionNavBarOverlay) {
    UIViewController *vc = currentView.viewController;
    vc.navigationController.navigationBarHidden = NO;
}                              
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2015-11-14 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 优势
  • 导入
  • 使用
    • 最基本用法
      • 按钮点击事件,自定义图片
        • 自定义展示样式
          • 官方demo修改成遮挡NavigationBar样式效果也不好,提示信息被NAvigationBar遮挡,但demo上有一个很好的处理思路,先把NavigationBar隐藏,待提示消失后再展示出来
            • 修改方法
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档