做過安卓開發(fā)的人都知道 Toast,它會在界面上顯示一排黑色背景的文字,用于提示用戶信息,但 iOS 并沒有類似的控件,所以,今天我就來講講在 iOS 上如何仿安卓 Toast?
原理
說白了,安卓中的 Toast 可以理解成 iOS 中的一個黑色背景的 UILabel
或者 帶點擊事件的 UIButton
,并還可以自己設置背景顏色、文本顏色、位置、邊角大小,邊框線條寬度和顏色等等。
說了這么多,如何仿真安卓 Toast 呢?我專門寫了一個DYFToast
類,支持橫豎屏切換,支持點擊移除,邊角處理時避免離屏渲染,采用鏈式編程思想,通過點語法操作,實現(xiàn)完全類似安卓的 Toast。
預覽
Toast Preview
安裝
支持通過 CocoaPods 安裝。
# Install lastest version
pod 'DYFToast'
接下來一起閱讀它的使用說明:
使用說明
- 導入頭文件
#import "DYFToast.h"
- 默認設置并顯示
- (IBAction)defaultAction:(id)sender {
Toast().makeText(self.view, "無效的驗證碼", Toastl.LENGTH_SHORT).show();
}
- 設置位置
// Four:
// Gravity.TOP_EDGE, Gravity.TOP
// Gravity.CENTER, Gravity.BOTTOM
- (IBAction)setGravityAction:(id)sender {
static int i = 0;
GravityType type = Gravity.TOP_EDGE;
char *message = "網(wǎng)絡連接超時,請重試";
if (i == 0) {
type = Gravity.TOP_EDGE;
message = "網(wǎng)絡連接超時,請重試";
} else if (i == 1) {
type = Gravity.TOP;
message = "請求失敗";
} else if (i == 2) {
type = Gravity.CENTER;
message = "清理完成";
} else if (i == 3) {
type = Gravity.BOTTOM;
message = "請輸入用戶名";
}
i++;
if (i >= 4) { i = 0; }
UIView *inView = self.navigationController.view;
Toast().makeText(inView, message, Toastl.LENGTH_LONG)
.setGravity(type)
.show();
}
- 設置背景和文本顏色
- (IBAction)setColorAction:(id)sender {
UIColor *bgColor = [UIColor colorWithRed:120/255.0 green:210/255.0 blue:251/255.0 alpha:0.9];
UIColor *textColor = [UIColor colorWithRed:255/255.0 green:255/255.0 blue:255/255.0 alpha:1.0];
char *message = "Wrong username and password";
Toast().makeText(self.view, message, Toastl.LENGTH_LONG)
.setGravity(Gravity.BOTTOM)
.setColor(bgColor, textColor)
.show();
}
- 設置邊角
- (IBAction)setCornerAction:(id)sender {
char *message = "Please input email";
Toast().makeText(self.view, message, Toastl.LENGTH_LONG)
.setGravity(Gravity.BOTTOM)
.setCorner(20)
.show();
}
- 設置邊框
- (IBAction)setBorderAction:(id)sender {
char *message = "手機號碼格式不正確,請重輸入";
Toast().makeText(self.view, message, Toastl.LENGTH_LONG)
.setGravity(Gravity.BOTTOM)
.setBorder(UIColor.orangeColor, 3)
.show();
}
最后
附上 DYFToast 項目地址,覺得還行呢,麻煩順手給個star。對開發(fā)實現(xiàn) Toast 或者喜歡研究的小伙伴,希望能夠解決你的一些問題。即使不能,也希望能給你提供一些思路。
DYFToast =>【https://github.com/dgynfi/DYFToast】
點贊+關(guān)注,第一時間獲取技術(shù)干貨和最新知識點,謝謝你的支持!
最后祝大家生活愉快~