日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

iOS封裝倒計時按鈕HLCountDownButton示例詳解_IOS

作者:一個寫iOS的小垃圾 ? 更新時間: 2022-09-13 編程語言

引言

在開發中經常會用到倒計時的按鈕,常用在發送短信驗證碼中。最差的寫法是把代碼寫在ViewController中。這樣的話如果項目中存在多個倒計時按鈕,代碼就十分臃腫了。所以封裝一個倒計時按鈕就迫在眉睫了。傳送門HLCountDownButton,歡迎幫忙點點小星星????

  • ? 支持過xibstoryboard自定義樣式
  • ? 支持切換前后臺計時準確
  • ? 多種樣式切換
  • ? 支持CocoaPods導入pod "HLCountDownButton"
  • ? 支持全局設置樣式

演示圖

可選自定義屬性

/// 樣式,默認HLCountDownButtonTypeNormal
@property (nonatomic, assign) IBInspectable NSInteger hlType UI_APPEARANCE_SELECTOR;
/// 是否可用,默認YES
@property (nonatomic, assign) IBInspectable BOOL hlEnabled UI_APPEARANCE_SELECTOR;
/// 正常標題,默認“獲取驗證碼”
@property (nonatomic, copy) IBInspectable NSString *normalTitle UI_APPEARANCE_SELECTOR;
/// 重新獲取標題,默認“獲取驗證碼”
@property (nonatomic, copy) IBInspectable NSString *againTitle UI_APPEARANCE_SELECTOR;
/// 發送中標題格式,默認“%ds 后獲取”
@property (nonatomic, copy) IBInspectable NSString *sendingTitleFormat UI_APPEARANCE_SELECTOR;
/// 高亮顏色,默認0x4181FE
@property (nonatomic, strong) IBInspectable UIColor *highlightedColor UI_APPEARANCE_SELECTOR;
/// 非高亮顏色,默認0xd2d2d2
@property (nonatomic, strong) IBInspectable UIColor *disabledColor UI_APPEARANCE_SELECTOR;
/// 圓角半徑,默認4
@property (nonatomic, assign) IBInspectable CGFloat cornerRadius UI_APPEARANCE_SELECTOR;
/// 邊框寬度,默認0.5
@property (nonatomic, assign) IBInspectable CGFloat borderWidth UI_APPEARANCE_SELECTOR;
/// 倒計時長,默認60s
@property (nonatomic, assign) IBInspectable NSInteger countDownSize UI_APPEARANCE_SELECTOR;

3種樣式選擇

typedef NS_ENUM(NSInteger, HLCountDownButtonType) {
    HLCountDownButtonTypeNormal,            ///< 無背景,無邊框
    HLCountDownButtonTypeOnlyLine,          ///< 無背景,有邊框
    HLCountDownButtonTypeOnlyBackground,    ///< 有背景,無邊框
};

回調說明

__weak typeof(self) weakSelf = self;
self.countDownButton.startBlock = ^(){
    // TODO 點擊了倒計時按鈕,這里可進行發送驗證碼操作
    // [weakSelf sendCodeMsg];
};

注意:點擊了會有startBlock回調,就不要為HLCountDownButton添加點擊Action

全局樣式設置

如果您項目中多個地方使用到該組件,您可以全局設置樣式,例在AppDelegate添加

[HLCountDownButton appearance].highlightedColor = [UIColor redColor];

注意:代碼 > appearance > interface builder,所以appearance設置的會覆蓋在xib或storyboard中設置的屬性,當然代碼會覆蓋appearance設置

原文鏈接:https://juejin.cn/post/7115308542797545508

欄目分類
最近更新