zoukankan      html  css  js  c++  java
  • TSMessages,非HUD风格的iOS提示框(附官方demo BUG修复方案)

    优势

    • 先看效果

    • 个人觉得这种提示效果用在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 任务池

  • 相关阅读:
    C struct 中字节对齐问题(转)
    蚁群算法,PSO算法以及两种算法可以融合的几种方法
    遗传及蚁群算法
    ListBox FAQ常用问题
    关于C#中ListBox控件重绘Item项
    创业艰难,问题多多
    asp.net客户端脚本验证小技巧
    防止ASP.NET按钮多次提交的办法
    鼠标点到文本框时的提示信息
    枚举的转换
  • 原文地址:https://www.cnblogs.com/ios122/p/4964812.html
Copyright © 2011-2022 走看看