iOS封裝倒計(jì)時(shí)按鈕HLCountDownButton示例詳解
引言
在開(kāi)發(fā)中經(jīng)常會(huì)用到倒計(jì)時(shí)的按鈕,常用在發(fā)送短信驗(yàn)證碼中。最差的寫(xiě)法是把代碼寫(xiě)在ViewController
中。這樣的話如果項(xiàng)目中存在多個(gè)倒計(jì)時(shí)按鈕,代碼就十分臃腫了。所以封裝一個(gè)倒計(jì)時(shí)按鈕就迫在眉睫了。傳送門(mén)HLCountDownButton,歡迎幫忙點(diǎn)點(diǎn)小星星????
- ? 支持過(guò)
xib
、storyboard
自定義樣式 - ? 支持切換前后臺(tái)計(jì)時(shí)準(zhǔn)確
- ? 多種樣式切換
- ? 支持
CocoaPods
導(dǎo)入pod "HLCountDownButton"
- ? 支持全局設(shè)置樣式
演示圖
可選自定義屬性
/// 樣式,默認(rèn)HLCountDownButtonTypeNormal @property (nonatomic, assign) IBInspectable NSInteger hlType UI_APPEARANCE_SELECTOR; /// 是否可用,默認(rèn)YES @property (nonatomic, assign) IBInspectable BOOL hlEnabled UI_APPEARANCE_SELECTOR; /// 正常標(biāo)題,默認(rèn)“獲取驗(yàn)證碼” @property (nonatomic, copy) IBInspectable NSString *normalTitle UI_APPEARANCE_SELECTOR; /// 重新獲取標(biāo)題,默認(rèn)“獲取驗(yàn)證碼” @property (nonatomic, copy) IBInspectable NSString *againTitle UI_APPEARANCE_SELECTOR; /// 發(fā)送中標(biāo)題格式,默認(rèn)“%ds 后獲取” @property (nonatomic, copy) IBInspectable NSString *sendingTitleFormat UI_APPEARANCE_SELECTOR; /// 高亮顏色,默認(rèn)0x4181FE @property (nonatomic, strong) IBInspectable UIColor *highlightedColor UI_APPEARANCE_SELECTOR; /// 非高亮顏色,默認(rèn)0xd2d2d2 @property (nonatomic, strong) IBInspectable UIColor *disabledColor UI_APPEARANCE_SELECTOR; /// 圓角半徑,默認(rèn)4 @property (nonatomic, assign) IBInspectable CGFloat cornerRadius UI_APPEARANCE_SELECTOR; /// 邊框?qū)挾?,默認(rèn)0.5 @property (nonatomic, assign) IBInspectable CGFloat borderWidth UI_APPEARANCE_SELECTOR; /// 倒計(jì)時(shí)長(zhǎng),默認(rèn)60s @property (nonatomic, assign) IBInspectable NSInteger countDownSize UI_APPEARANCE_SELECTOR;
3種樣式選擇
typedef NS_ENUM(NSInteger, HLCountDownButtonType) { HLCountDownButtonTypeNormal, ///< 無(wú)背景,無(wú)邊框 HLCountDownButtonTypeOnlyLine, ///< 無(wú)背景,有邊框 HLCountDownButtonTypeOnlyBackground, ///< 有背景,無(wú)邊框 };
回調(diào)說(shuō)明
__weak typeof(self) weakSelf = self; self.countDownButton.startBlock = ^(){ // TODO 點(diǎn)擊了倒計(jì)時(shí)按鈕,這里可進(jìn)行發(fā)送驗(yàn)證碼操作 // [weakSelf sendCodeMsg]; };
注意:點(diǎn)擊了會(huì)有startBlock
回調(diào),就不要為HLCountDownButton
添加點(diǎn)擊Action
了
全局樣式設(shè)置
如果您項(xiàng)目中多個(gè)地方使用到該組件,您可以全局設(shè)置樣式,例在AppDelegate
添加
[HLCountDownButton appearance].highlightedColor = [UIColor redColor];
注意:代碼
> appearance
> interface builder
,所以appearance設(shè)置的會(huì)覆蓋在xib或storyboard中設(shè)置的屬性,當(dāng)然代碼
會(huì)覆蓋appearance
設(shè)置
以上就是iOS封裝倒計(jì)時(shí)按鈕HLCountDownButton示例詳解的詳細(xì)內(nèi)容,更多關(guān)于iOS封裝HLCountDownButton的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
iOS中containsString和rangeOfString的區(qū)別小結(jié)
這篇文章主要給大家總結(jié)介紹了關(guān)于iOS中containsString和rangeOfString的一些區(qū)別,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。2018-01-01IOS 文件讀寫(xiě)操作詳解及簡(jiǎn)單實(shí)例
這篇文章主要介紹了IOS 文件讀寫(xiě)操作詳解及簡(jiǎn)單實(shí)例的相關(guān)資料,需要的朋友可以參考下2017-04-04iOS中json解析出現(xiàn)的null,nil,NSNumber的解決辦法
在iOS開(kāi)發(fā)過(guò)程中經(jīng)常需要與服務(wù)器進(jìn)行數(shù)據(jù)通訊,Json就是一種常用的高效簡(jiǎn)潔的數(shù)據(jù)格式,通過(guò)本文給大家介紹iOS中json解析出現(xiàn)的null,nil,NSNumber的解決辦法,感興趣的朋友參考下2016-01-01iOS tableview實(shí)現(xiàn)簡(jiǎn)單搜索功能
這篇文章主要為大家詳細(xì)介紹了iOS tableview實(shí)現(xiàn)簡(jiǎn)單搜索功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-11-11iOS中關(guān)于Cookie驗(yàn)證登錄狀態(tài)
這篇文章主要介紹了iOS中關(guān)于Cookie驗(yàn)證登錄狀態(tài)的相關(guān)資料,需要的朋友可以參考下2017-05-05IOS 開(kāi)發(fā)之自定義按鈕實(shí)現(xiàn)文字圖片位置隨意定制
這篇文章主要介紹了IOS 開(kāi)發(fā)之自定義按鈕實(shí)現(xiàn)文字圖片位置隨意定制的相關(guān)資料,這里附有實(shí)例代碼及實(shí)現(xiàn)效果圖,需要的朋友可以參考下2016-12-12iOS實(shí)現(xiàn)毛玻璃效果(無(wú)需要第三方)
這篇文章主要為大家詳細(xì)介紹了iOS實(shí)現(xiàn)毛玻璃效果,無(wú)需要第三方,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-05-05iOS 獲取當(dāng)前的ViewController的方法
本篇文章主要介紹了iOS 獲取當(dāng)前的ViewController的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-09-09