优势

  • 先看效果

  • 个人觉得这种提示效果用在UITableView上要比HUD优雅美观,而其他情况下的提示,用HUD比较好

  • 源码简介易懂,用起来也很方便

导入

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

使用

  • TSMessageNotificationType:提示样式,包含 TSMessageNotificationTypeMessage,TSMessageNotificationTypeWarning,TSMessageNotificationTypeError,TSMessageNotificationTypeSuccess,分别用来做展示信息,提示警告,提示错误,提示成功

  • TSMessageNotificationPosition:提示位置,包含 TSMessageNotificationPositionTop,TSMessageNotificationPositionNavBarOverlay,TSMessageNotificationPositionBottom,分别展示在顶部(有NavigationBar的话紧挨着它),遮挡NavigationBar(实际测试并不好用),底部

  • TSMessageNotificationDuration:提示消失方式,包含 TSMessageNotificationDurationAutomatic,TSMessageNotificationDurationEndless,含义是自动消失和手动消失

最基本用法

[TSMessage showNotificationWithTitle:@"标题"
subtitle:@"详细信息"
type:TSMessageNotificationTypeError];

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

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

自定义展示样式

[[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,如:

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];

然后在

	- (void)fadeOutNotification:(TSMessageView *)currentView animationFinishedBlock:(void (^)())animationFinished

方法下加入

if (currentView.messagePosition == TSMessageNotificationPositionNavBarOverlay) {
UIViewController *vc = currentView.viewController;
vc.navigationController.navigationBarHidden = NO;
}

注: 文章由我们 iOS122 的小伙伴 @偌一茗 整理,喜欢就一起参与: iOS122 任务池

TSMessages,非HUD风格的iOS提示框(附官方demo BUG修复方案)的更多相关文章

  1. iOS提示框,为什么你应该使用 MBProgressHUD?

    这是一篇带有一定笔者主观感情色彩的比较文章.文章着重对比github上最流行的两个iOS进度提示控件 MBProgressHUD 与 SVProgressHUD的各自优劣,来帮助初学者找到一个适合的i ...

  2. iOS:提示框(警告框)控件UIAlertView的详解

    提示框(警告框)控件:UIAlertView   功能:当点击按钮或标签等时,弹出一个提示框,显示必要的提示,然后通过添加的按钮完成需要的功能.   类型:typedef NS_ENUM(NSInte ...

  3. Android中仿IOS提示框的实现

    前言 在Android开发中,我们有时需要实现类似IOS的对话框.今天我就来总结下,如何通过自定义的开发来实现类似的功能. 自定义Dialog 我们知道Android中最常用的对话框就是Dialog及 ...

  4. ios提示框,自动消失

    -(void)click { NSString *showMsg = @"点击我,开始提示"; int width = showMsg.length * 20; UIWindow ...

  5. 前后端分离开发,基于SpringMVC符合Restful API风格Maven项目实战(附完整Demo)!

    摘要: 本人在前辈<从MVC到前后端分离(REST-个人也认为是目前比较流行和比较好的方式)>一文的基础上,实现了一个基于Spring的符合REST风格的完整Demo,具有MVC分层结构并 ...

  6. 第三方框架MBProgressHUD-----实现各种提示框

    程序运行显示如下 : 点击按钮实现对应的提示框: 这里只截取了其中一张图,有兴趣的可以自己运行程序,查看其他的几种提示框哟!!! 第三方框架MBProgressHUD的下载地址:https://git ...

  7. [置顶] ios 时间定时器 NSTimer应用demo

    原创文章,转载请注明出处:http://blog.csdn.net/donny_zhang/article/details/9251917 demo功能:ios NSTimer应用demo .ipho ...

  8. iOS开发——UI基础-提示框

    提示框的种类有很多,废话不多说,直接上代码 一.文本提示框 运行结果如下: 代码实现如下: @interface ViewController () // 添加方法 - (IBAction)add; ...

  9. 【转】提示框第三方库之MBProgressHUD iOS toast效果 动态提示框效果

    原文网址:http://www.zhimengzhe.com/IOSkaifa/37910.html MBProgressHUD是一个开源项目,实现了很多种样式的提示框,使用上简单.方便,并且可以对显 ...

随机推荐

  1. inventor安装失败怎样卸载安装inventor 2019?

    AUTODESK系列软件着实令人头疼,安装失败之后不能完全卸载!!!(比如maya,cad,3dsmax等).有时手动删除注册表重装之后还是会出现各种问题,每个版本的C++Runtime和.NET f ...

  2. Ant,Maven与Gradle的概念的理解

    转载地址:http://www.jianshu.com/p/cd8fe9b16369# 我们还是以AndroidStudio 2.1.1为例来讲. 用AndroidStudio就逃不开跟Gradle打 ...

  3. 牛客网Java刷题知识点之父类中的私有内容,子类是否具备? 子类不可直接,但可间接访问父类中的私有内容?

    不多说,直接上干货!  父类中的私有内容,子类是否具备? 答:不具备 子类不可直接,但可间接访问父类中的私有内容 这样情况,开发中不所见,但是,面试的时候,必考非常常见.

  4. div拖动实现及优化

    工作中的一个项目ui界面比较传统(chou),就想着把前端重构一下.内容之一是把导航栏从上方固定高度改为了右侧伸缩的边栏,好处是边栏可伸缩,占用面积小.不完美的地方是有时候会遮挡页面上最右边的按钮,作 ...

  5. DB2错误码大全

    sqlcode sqlstate 说明 000 00000 SQL语句成功完成 01xxx SQL语句成功完成,但是有警告 +012 01545 未限定的列名被解释为一个有相互关系的引用 +098 0 ...

  6. C++ 虚函数、纯虚函数、虚继承

    1)C++利用虚函数来实现多态. 程序执行时的多态性通过虚函数体现,实现运行时多态性的机制称爲动态绑定:与编译时的多态性(通过函数重载.运算符重载体现,称爲静态绑定)相对应. 在成员函数的声明前加上v ...

  7. java实现新旧版本号比较

    项目中需要使用比较现在线上版本和新版本,然后新版本执行新方法,方法如下: /** * * @方法名称:comparaVersion * @内容摘要: <版本比较> * @param old ...

  8. wpf 查找父元素、子元素方法

    1 /// <summary> 2 /// 根据类型查找子元素 3 /// </summary> 4 /// <typeparam name="T"& ...

  9. xml解析demo使用

    package lianxi; import java.io.FileOutputStream;import java.io.OutputStreamWriter; import javax.xml. ...

  10. Html+CSS--->第一周初探

    html css 学了一周的前端,谈谈我的感想 我一直在使用sublime text 3来编辑我的代码,其中有很多很好用的快捷键和插件大大提高了我的开发效率 在这里我极力推荐使用编辑器来进行学习前端. ...