github 中功能最全的 iOS 消息通知框架

2,094 阅读4分钟

Version CocoaPods GitHub license

This is a simple extension of an iOS message notifications that can be used to pop up a prompt at the top or bottom of the screen. You can customize it according to their own display.

English instructions

Requirements

  • Requires iOS 8 or later
  • Requires Automatic Reference Counting (ARC)

Features

  • Easy to use
  • Can be easily customized

Installation

CocoaPods

To install FFToast using CocoaPods, please integrate it in your existing Podfile, or create a new Podfile:

target 'MyApp' do
  pod 'FFToast'
end

Then run pod install.

Manual

Add FFToast folder to your project

Usage

#import <FFToast/FFToast.h>

You can create a message notification that shows the default effect at the top by calling the following method:

/**
 Create and display one Toast

 @param title Message title
 @param message Message content
 @param iconImage Message icon, when toastType is not FFToastTypeDefault iconImage is empty will still have the corresponding icon
 @param duration Show duration
 */
+ (void)showToastWithTitle:(NSString *)title message:(NSString *)message iconImage:(UIImage*)iconImage duration:(NSTimeInterval)duration toastType:(FFToastType)toastType;

Where toastType:

typedef NS_ENUM(NSInteger, FFToastType) {
    //Gray background, no icon
    FFToastTypeDefault = 0,
    //Green background + success icon
    FFToastTypeSuccess = 1,
    //Red background + error icon
    FFToastTypeError = 2,
    //Orange background + warning icon
    FFToastTypeWarning = 3,
    //Gray blue background + info icon
    FFToastTypeInfo = 4,
};

for example:

[FFToast showToastWithTitle:@"This is the title" message:@"Message content......." iconImage:[UIImage imageNamed:@"test"] duration:3 toastType:FFToastTypeDefault];

Title (title), message (message), icon (iconImage) can be empty, FFToast will be based on specific content to adapt.

If you want to show a message notification below the status bar or below the screen, you can set some properties. Set the display position:

typedef NS_ENUM(NSInteger, FFToastPosition) {

    //Displayed at the top of the screen
    FFToastPositionDefault = 0,
    //Displayed below the status bar
    FFToastPositionBelowStatusBar = 1,
    //Displayed below the status bar + rounded corners + left and right margins
    FFToastPositionBelowStatusBarWithFillet = 2,
    //Displayed in the bottom of the screen
    FFToastPositionBottom = 3,
    //Displayed in the bottom of the screen + rounded
    FFToastPositionBottomWithFillet = 4

};

Some other attributes:

//background color
@property (strong, nonatomic) UIColor* toastBackgroundColor;
//Toast title text color
@property (strong, nonatomic) UIColor* titleTextColor;
//Toast content text color
@property (strong, nonatomic) UIColor* messageTextColor;

//Toast title text font
@property (strong, nonatomic) UIFont* titleFont;
//Toast text font
@property (strong, nonatomic) UIFont* messageFont;

//Toast View corner radius
@property(assign,nonatomic)CGFloat toastCornerRadius;
//Toast View transparency
@property(assign,nonatomic)CGFloat toastAlpha;

//Toast shows the length of time
@property(assign,nonatomic)NSTimeInterval duration;
//Toast disappear animation is enabled
@property(assign,nonatomic)BOOL dismissToastAnimated;

//Toast display position
@property (assign, nonatomic) FFToastPosition toastPosition;

After setting the properties, you can call the following method to display it:

/**
 Show a Toast
 */
- (void)show;

or:

/**
 Show a Toast

 @param handler Toast click callback
 */
- (void)show:(handler)handler;

for example:

FFToast *toast = [[FFToast alloc]initToastWithTitle:@"This is the title" message:@"Message content......." iconImage:[UIImage imageNamed:@"fftoast_info"]];
toast.toastPosition = FFToastPositionBelowStatusBarWithFillet;
toast.toastBackgroundColor = [UIColor colorWithRed:75.f/255.f green:107.f/255.f blue:122.f/255.f alpha:1.f];
[toast show:^{
    //Called when you click message notifications
}];//[toast show];

Hide message notifications: The default 3 seconds after the automatic disappear, slide up the pop-up message to inform it will disappear

About

Author: imlifengfeng
WeiBo: @imlifengfeng

License

Usage is provided under the MIT License. See LICENSE for full details.

中文使用说明

要求

  • 支持iOS 8或更高版本
  • 支持ARC

特点

  • 简单易用
  • 可以很容易自定义

安装

CocoaPods

要使用CocoaPods安装FFToast,请将其集成到您现有的Podfile中,或创建一个新的Podfile:

target 'MyApp' do
  pod 'FFToast'
end

然后 pod install.

手动

将FFToast文件夹添加到项目中

使用方法

#import <FFToast/FFToast.h>

你可以通过调用下面的方法创建一个显示在顶部的默认效果的消息通知:

/**
 创建并显示一个Toast

 @param title 标题
 @param message 消息内容
 @param iconImage 消息icon,toastType不为FFToastTypeDefault时iconImage为空仍然会有相应icon
 @param duration 显示时长
 */
+ (void)showToastWithTitle:(NSString *)title message:(NSString *)message iconImage:(UIImage*)iconImage duration:(NSTimeInterval)duration toastType:(FFToastType)toastType;

其中的toastType:

typedef NS_ENUM(NSInteger, FFToastType) {

    //灰色背景、无图标
    FFToastTypeDefault = 0,
    //绿色背景+成功图标
    FFToastTypeSuccess = 1,
    //红色背景+错误图标
    FFToastTypeError = 2,
    //橙色背景+警告图标
    FFToastTypeWarning = 3,
    //灰蓝色背景+信息图标
    FFToastTypeInfo = 4,

};

例如:

[FFToast showToastWithTitle:@"标题" message:@"消息内容......." iconImage:[UIImage imageNamed:@"test"] duration:3 toastType:FFToastTypeDefault];

标题(title)、消息内容(message)、图标(iconImage)均可以为空,FFToast会根据具体的内容进行自适应。

如果想在状态栏下方或者屏幕中下方显示消息通知,可以通过设置一些属性实现。 设置显示位置:

typedef NS_ENUM(NSInteger, FFToastPosition) {

    //显示在屏幕顶部
    FFToastPositionDefault = 0,
    //显示在状态栏下方
    FFToastPositionBelowStatusBar = 1,
    //显示在状态栏下方+圆角+左右边距
    FFToastPositionBelowStatusBarWithFillet = 2,
    //显示在屏幕中下方
    FFToastPositionBottom = 3,
    //显示在屏幕中下方+圆角
    FFToastPositionBottomWithFillet = 4

};

其他的一些属性:

//背景颜色
@property (strong, nonatomic) UIColor* toastBackgroundColor;
//Toast标题文字颜色
@property (strong, nonatomic) UIColor* titleTextColor;
//Toast内容文字颜色
@property (strong, nonatomic) UIColor* messageTextColor;

//Toast标题文字字体
@property (strong, nonatomic) UIFont* titleFont;
//Toast文字字体
@property (strong, nonatomic) UIFont* messageFont;

//Toast View圆角
@property(assign,nonatomic)CGFloat toastCornerRadius;
//Toast View透明度
@property(assign,nonatomic)CGFloat toastAlpha;

//Toast显示时长
@property(assign,nonatomic)NSTimeInterval duration;
//Toast消失动画是否启用
@property(assign,nonatomic)BOOL dismissToastAnimated;

//Toast显示位置
@property (assign, nonatomic) FFToastPosition toastPosition;

设置完属性后,就可以调用下面方法将其显示出来:

/**
 显示一个Toast
 */
- (void)show;

或者:

/**
 显示一个Toast

 @param handler Toast点击回调
 */
- (void)show:(handler)handler;

例如:

FFToast *toast = [[FFToast alloc]initToastWithTitle:@"标题" message:@"消息内容......." iconImage:[UIImage imageNamed:@"fftoast_info"]];
toast.toastPosition = FFToastPositionBelowStatusBarWithFillet;
toast.toastBackgroundColor = [UIColor colorWithRed:75.f/255.f green:107.f/255.f blue:122.f/255.f alpha:1.f];
[toast show:^{
    //点击消息通知时调用
}];//[toast show];

隐藏消息通知: 默认3秒后自动消失,向上滑动弹出的消息通知它也会消失。

关于

作者: imlifengfeng
微博: @imlifengfeng

许可

该项目在 MIT 许可协议下使用. 有关详细信息,请参阅 LICENSE.