FFToast:GitHub中最強大的iOS Notification和AlertView框架,沒有之一!

imlifengfeng發表於2017-02-27

GitHub地址:https://github.com/imlifengfeng/FFToast

中文使用說明

FFToast是一個非常強大的iOS message notifications和AlertView擴充套件。它可以很容易實現從螢幕頂部、螢幕底部和螢幕中間彈出一個通知。你可以很容易的自定義彈出的View.

要求

  • 支援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)均可以為nil,FFToast會根據具體的內容進行自適應。

如果想在狀態列下方、螢幕下方或者螢幕中間顯示訊息通知,可以通過設定一些屬性實現。 設定顯示位置:

typedef NS_ENUM(NSInteger, FFToastPosition) {

    //顯示在螢幕頂部
    FFToastPositionDefault = 0,
    //顯示在狀態列下方
    FFToastPositionBelowStatusBar = 1,
    //顯示在狀態列下方+圓角+左右邊距
    FFToastPositionBelowStatusBarWithFillet = 2,
    //顯示在螢幕底部
    FFToastPositionBottom = 3,
    //顯示在螢幕底部+圓角
    FFToastPositionBottomWithFillet = 4,
    //顯示在螢幕中間
    FFToastPositionCentre = 5,
    //顯示在螢幕中間+圓角
    FFToastPositionCentreWithFillet = 6

};

其他的一些屬性:

//背景顏色
@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顯示型別
@property (assign, nonatomic) FFToastType toastType;

//是否自動隱藏,autoDismiss、enableDismissBtn、dismissBtnImage三個屬性僅對從螢幕中間彈出的Toast有效
@property(assign,nonatomic)BOOL autoDismiss;
//是否在右上角顯示隱藏按鈕
@property(assign,nonatomic)BOOL enableDismissBtn;
//隱藏按鈕的圖示
@property (strong, nonatomic) UIImage* dismissBtnImage;

設定完屬性後,就可以呼叫下面方法將其顯示出來:

/**
 顯示一個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];

如果你想自定義一個從中間彈出的Toast,可以呼叫下面的方法:

/**
 在中間顯示一個自定義Toast

 @param customToastView 自定義的ToastView
 @param autoDismiss 是否自動隱藏
 @param duration 顯示時長(autoDismiss = NO時該引數將無效)
 @param enableDismissBtn 是否顯示隱藏按鈕
 @param dismissBtnImage 隱藏按鈕圖片(enableDismissBtn = NO時該引數將無效)
 @return Toast
 */
- (instancetype)initCentreToastWithView:(UIView *)customToastView autoDismiss:(BOOL)autoDismiss duration:(NSTimeInterval)duration enableDismissBtn:(BOOL)enableDismissBtn dismissBtnImage:(UIImage*)dismissBtnImage;

你在自定義從中間彈出的Toast時,你可以將上面的引數autoDismiss和引數enableDismissBtn設為NO。然後在你自定義的View中自己在合適的位置新增一個關閉按鈕。 關閉從中間彈出的Toast,可以呼叫下面的方法:

/**
 隱藏一個Toast
 */
- (void)dismissCentreToast;

頂部、底部彈出的Toast不可自定義View,但是對於iconImage、Title、message均可以根據需要設定並且可以為nil,最終Toast會根據具體的內容進行自適應。

隱藏訊息通知: 預設3秒後自動消失,向上滑動彈出的訊息通知它也會消失。

關於

作者: imlifengfeng
微博: @imlifengfeng

許可

該專案在 MIT 許可協議下使用. 有關詳細資訊,請參閱 LICENSE .

相關文章