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

王朝学院·作者佚名  2016-08-27
窄屏简体版  字體: 小  |  中  |  大  |  超大  

优势先看效果

个人觉得这种提示效果用在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,含义是自动消失和手动消失

最基本用法[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 的小伙伴** at 偌一茗** 整理,喜欢就一起参与:iOS122 任务池

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航