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 任务池

  • 相关阅读:
    单例模式
    Curator Zookeeper分布式锁
    LruCache算法原理及实现
    lombok 简化java代码注解
    Oracle客户端工具出现“Cannot access NLS data files or invalid environment specified”错误的解决办法
    解决mysql Table ‘xxx’ is marked as crashed and should be repaired的问题。
    Redis 3.0 Cluster集群配置
    分布式锁的三种实现方式
    maven发布项目到私服-snapshot快照库和release发布库的区别和作用及maven常用命令
    How to Use Convolutional Neural Networks for Time Series Classification
  • 原文地址:https://www.cnblogs.com/ios122/p/4964812.html
Copyright © 2011-2022 走看看