FFToast:GitHub中最強大的iOS Notification和AlertView框架,沒有之一!
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
許可
相關文章
- 史上最強程式碼自測方法,沒有之一!
- 史上最全的iOS開源專案分類彙總沒有之一iOS
- 強大的Github ActionsGithub
- Audio Unit: iOS中最底層最強大音訊控制APIiOS音訊API
- iOS自定義控制元件 AlertViewiOS控制元件View
- ?????iOS圖表框架AAChartKit—強大、精美、易用的開源iOS圖表iOS框架
- 淺談 Easy-mock 最好的備胎沒有之一Mock
- OneNote是最好的筆記本且沒有之一筆記
- User Notification Framework 框架的使用Framework框架
- 最簡單的 Go Dockerfile 編寫姿勢,沒有之一!GoDocker
- 最簡單的Go Dockerfile編寫姿勢,沒有之一!GoDocker
- 史上最深入解析hadoop調優,沒有之一!Hadoop
- Github中最常使用的開源庫Github
- GitHub上最火的、最值得前端學習的幾個資料結構與演算法專案!沒有之一!Github前端資料結構演算法
- iOS下點選任意空白Dismiss當前自定義的AlertViewiOSView
- 一個小巧而強大的 Key-Value 管理框架框架
- ent - 一個強大的Go語言實體框架Go框架
- Laravel框架的基石就是一個功能強大的 IoC 容器Laravel框架
- Flutter(Flare) 最有趣使用者互動動畫沒有之一Flutter動畫
- ThinkPHP完全適應任何裝置 最美部落格 沒有之一!PHP
- 10個Java中最沒用的特性Java
- iOS notification的優勢及缺點iOS
- 用一個月整理的Pandas的教程!最全面的教程沒有之一!先收藏吧!
- Material UI:非常強大的CSS框架UICSS框架
- 最簡單的服務響應時長優化方法,沒有之一優化
- 最簡單的移動端適配方案(rem+vw)--沒有之一REM
- 史上最全面試題彙總,沒有之一,不接受反駁面試題
- 和 Charles 同樣強大的 iOS 免費抓包工具 mitmproxyiOSMIT
- LeetCode 上最難的連結串列演算法題,沒有之一!LeetCode演算法
- 3分鐘短文:可能是Laravel模板最直白的用法了,沒有之一Laravel
- 可能是迄今為止最好用的WPF載入動畫功能(沒有之一)動畫
- GithubX: 一個 Github 體驗增強外掛Github
- 最簡單的 K8S 部署檔案編寫姿勢,沒有之一!K8S
- 我是見鬼了麼?這是史上最邪惡的指令碼!沒有之一!指令碼
- Go 介面:Go中最強大的魔法,介面應用模式或慣例介紹Go模式
- 教你如何自定義AlertViewView
- 《JUMP》中最強的好女人角色排行TOP 10
- 探索Django REST框架構建強大的APIDjangoREST框架架構API