优化版的App提示&活动指示器的提示

Posted iOS的美丽岁月

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了优化版的App提示&活动指示器的提示相关的知识,希望对你有一定的参考价值。

一、在App 开发中提示用户这样的功能非常常见。例如:用户有些不正确的操作后,App应给与相关的提示;还有在App 加载的内容的时候,为了消除用户着急的心里,我们进行一个活动指示器的提示等。。。

二、我们的提示的优点

      1》使用简单,代码一行就能完成。
      2》代码可以移植高,耦合度低。
      3》样式随时可以修改。
      4》App 提示默认经典样式。
      5》提示位置可以控制。
      6》支持屏幕旋转。

三、展示我们的提示效果

   1、 基本的

  代码调用如下:

     [self.view showToastMessage:@"短信已发送,请注意查收"];


   效果图如下:


2、图片

   调用代码如下:

  [self.view showTosatImageView:[UIImage imageNamed:@"dog.png"]];

  展示效果如下:

  

3、图片&消息

调用代码

[self.view showTosatMessage:@"看一看" title:nil image:[UIImage imageNamed:@"dog.png"]];

效果展示:
4、 图片 & 消息 & 标题 调用代码

[self.view showTosatMessage:@"看一看" title:@"狗狗照" image:[UIImage imageNamed:@"dog.png"]];

展示效果:
5、 图片 & 消息 & 标题 & 展示时间 调用代码

[self.view showTosatMessage:@"看一看" title:@"狗狗照" image:[UIImage imageNamed:@"dog.png"] duration:2];

效果展示



6、 图片 & 消息 & 标题 & 展示时间 & 位置 调用代码

[self.view showTosatMessage:@"看一看" title:@"狗狗照" image:[UIImage imageNamed:@"dog.png"] position:@"0.3" duration:2];

展示效果
7、简单的活动指示器 代码调用

[self.view showActivityTaost];

效果展示:
8、 指示器 & 文字 & 位置 调用代码

[self.view showActivityToast:@"正在加载,请稍后..." withPosition:@"0.3"];

效果展示
10、指示器的清楚 调用代码

[self.view deleteActivity];


四、提示的配置文件展示

//

//  NWToastConfigurationFile.h

//  ToastView

//

//  Created by MAC on 2017/6/6.

//  Copyright © 2017 NetworkCode小贱. All rights reserved.

//


#ifndef NWToastConfigurationFile_h

#define NWToastConfigurationFile_h


#pragma mark 提示的样式设置

static const BOOL NWToastIsShadow  =  YES ;

static const BOOL NWToastIsHidesOnTap  =  YES ;


#pragma mark 常规变量的设置

/* 圆切角*/

static const CGFloat  NWToastCornerRadius =  6.0 ;

/* 提示阴影透明度*/

static const CGFloat  NWToastShadowOpacity =  0.6 ;

/* 阴影的圆角*/

static const CGFloat  NWToastShadowRadius =  6.0 ;

/* 阴影的位置偏移*/

static const CGSize   NWToastShadowOffset =  4.0 ,4.0 ;

/* 提示背景色透明度*/

static const CGFloat  NWToastOpacity =  0.6 ;

/* 提示标题的最大换行数*/

static const NSInteger  NWToastMaxTitleLines = 0 ;

/* 提示标题的字体大小*/

static const CGFloat  NWToastTitleFontSize =  16.0 ;

/* 提示图片的设置*/

static const CGFloat  NWToastImageViewHorizontalPadding =  10.0 ;

static const CGFloat  NWToastImageViewVerticalPadding =  10.0 ;

static const CGFloat  NWToastImageViewWidth =  80.0 ;

static const CGFloat  NWToastImageViewHeight =  80.0 ;

/* 设置提示的最大宽度和高度*/

static const CGFloat  NWToastMaxHeight =  0.8 ;

static const CGFloat  NWToastMaxWidth =  0.8 ;


/* 提示内容元素上下间隔*/

static const CGFloat  NWToastElementVerticalPadding =  10.0 ;

/* 提示默认位置*/

static const CGFloat  NWToastVerticalCenter =  0.5 ;

/* 提示显示过程的时间*/

static const CGFloat  NWToastFadeDuration =  0.3 ;

/* 提示定时器的key*/

static const NSString * NWToastTimerKey = @"NWToastTimerKey";

/* 提示存在的时间*/

static const CGFloat  NWToastExistTime =  4 ;



#pragma mark 带活动指示器的设置

static const NSString * NWActivityToastKey = @"NWActivityToastKey";

/* 活动指示器的提示View的背景色灰白度的参数*/

static const CGFloat  NWActivityToastComponent =  0.8 ;

/* 活动指示器的提示层的透明度*/

static const CGFloat  NWActivityToastAlpha =  0.8 ;

/* 提示层的圆切角*/

static const CGFloat NWActivityToastCornerRadius = 6.0;

/* 提示是否有投影*/

static const BOOL NWActivityToastShadow = YES;

/* 提示阴影透明度*/

static const CGFloat  NWActivityToastShadowOpacity =  0.6 ;

/* 阴影的圆角*/

static const CGFloat  NWActivityToastShadowRadius =  6.0 ;

/* 阴影的位置偏移*/

static const CGSize   NWActivityToastShadowOffset =  4.0 ,4.0 ;

/* 提示消息文字大小*/

static const CGFloat  NWActivityToastFont =  16.0 ;

/* 提示消息文字的最大展示行*/

static const NSInteger  NWActivityMaxLine =  0 ;

/* 提示文字最大展示的宽度*/

static const CGFloat  NWActivityMaxWidth = 0.6;

/* 提示文字最大展示的高度*/

static const CGFloat  NWActivityMaxHeigth = 0.6;

/* 提示内容元素上下间隔*/

static const CGFloat  NWActivityToastElementVerticalPadding =  10.0 ;

/* 活动指示器的宽与高*/

static const CGFloat  NWActivityToastWidth =  60.0 ;

static const CGFloat  NWActivityToastHeight =  60.0 ;

/* 活动指示器移除的时间*/

static const CGFloat  NWActivityToastFadeDuration =  0.3 ;


#endif /* NWToastConfigurationFile_h */



五、提示方法展示

//

//  UIView+NWToast.h

//  ToastView

//

//  Created by MAC on 2017/6/6.

//  Copyright © 2017 NetworkCode小贱. All rights reserved.

//


#import <UIKit/UIKit.h>


@interface UIView (NWToast)

/*!

 单独的一个信息展示

 */

-(void)showToastMessage:(NSString*)message;


/*!

 单独显示图片

 */

-(void)showTosatImageView:(UIImage*) image;


/*!

 标题、图片、消息

 */

-(void)showTosatMessage:(NSString*)message title:(NSString*)title image:(UIImage*) image ;

/*!

 标题、图片、消息、时间

 */

-(void)showTosatMessage:(NSString*)message title:(NSString*)title image:(UIImage*) image  duration:(NSTimeInterval)time;


/*!

 标题、图片、消息、位置

 point : 高度小于提示框的一半,则为默认状态

 */

-(void)showTosatMessage:(NSString*)message title:(NSString*)title image:(UIImage*) image  position:(id) point duration:(NSTimeInterval)time;


#pragma mark 带有活动指示器的提示

/**

 单独的活动指示器

 */

-(void)showActivityTaost;

/**

 活动指示器和文字和位置

 */

-(void)showActivityToast:(NSString*)message withPosition:(id) point;

/**

 清楚活动指示器

 */

-(void)deleteActivity;

@end


六、提示样式的布局

//

//  UIView+NWToast.m

//  ToastView

//

//  Created by MAC on 2017/6/6.

//  Copyright © 2017 NetworkCode小贱. All rights reserved.

//


#import "UIView+NWToast.h"

#import "NWToastConfigurationFile.h"

#import <objc/runtime.h>


@implementation UIView (NWToast)



#pragma mark showToastMessage:

-(void)showToastMessage:(NSString*)message

    UIView * tosat = [self createTosast:message title:nil image:nil];

    [self nwShowTosat:tosat duration:NWToastExistTime position:nil];


#pragma mark showTosatImageView:

-(void)showTosatImageView:(UIImage*) image

    UIView * tosat = [self createTosast:nil title:nil image:image];

    [self nwShowTosat:tosat duration:NWToastExistTime position:nil];


#pragma mark showTosatMessage:title:image

-(void)showTosatMessage:(NSString*)message title:(NSString*)title image:(UIImage*) image

    UIView * tosat = [self createTosast:message title:title image:image];

    [self nwShowTosat:tosat duration:NWToastExistTime position:nil];

#pragma mark  showTosatMessage:title:image:duration

-(void)showTosatMessage:(NSString*)message title:(NSString*)title image:(UIImage*) image  duration:(NSTimeInterval)time

    UIView * tosat = [self createTosast:message title:title image:image];

    [self nwShowTosat:tosat duration:time position:nil];


#pragma mark showTosatMessage:title:image:position

-(void)showTosatMessage:(NSString*)message title:(NSString*)title image:(UIImage*) image  position:(id) point duration:(NSTimeInterval)time

    UIView * tosat = [self createTosast:message title:title image:image];

    [self nwShowTosat:tosat duration:time position:point];


#pragma mark toast展示到视图上

-(void)nwShowTosat:(UIView*)toast duration:(NSTimeInterval)time position:(id) point

    /**

     设置提示的位置

     */

    toast.center = [self nwCalculateTosat:toast withPosition:point];

    toast.alpha = 0.0;

    /**

     添加点击事件

     */

    if (NWToastIsHidesOnTap)

        toast.userInteractionEnabled = YES;

        UITapGestureRecognizer * tapGestureRecognizer = [[UITapGestureRecognizer alloc]initWithTarget:toast action:@selector(tapClick:)];

        [toast addGestureRecognizer以上是关于优化版的App提示&活动指示器的提示的主要内容,如果未能解决你的问题,请参考以下文章

加载网页时,活动指示器不会隐藏

Android 高亮指示层提示

EditText提示文字

JAVA中操作CLOB大对象 ,提示ORA-01704字符串文字太长

活动打不开,提示诱导分享诱导关注的解决办法

向上滑动的文字提示效果探索