選擇生日(重新 UITextField)

重新UITextField定制成自己需要的,什么時(shí)候需要生日,日期選擇等情況下,直接引入頭文件就可以使用,非常的方便。

在使用之前首先要對(duì)UITextField的代理方法進(jìn)行設(shè)置,目的是:讓輸入框只能選擇不能認(rèn)為輸入
(1)遵守 <UITextFieldDelegate> 代理
(2)指定代理 self.birthdayTextF.delegate = self;
(3)修改代理方法

// 是否允許文本框的內(nèi)容(no/false 攔截用書(shū)輸入 true/yes 允許用戶輸入)
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{
    return false; // 不允許用戶輸入
}

.h文件

#import <UIKit/UIKit.h>

@interface YYBirthdayTextField : UITextField

@end

.m文件

#import "YYBirthdayTextField.h"

@interface YYBirthdayTextField()
@property (nonatomic, strong) UIDatePicker *datePickView;
@end

@implementation YYBirthdayTextField

- (UIDatePicker *)datePickView{
    if (!_datePickView) {
        UIDatePicker *datePick = [[UIDatePicker alloc]init];
        // 設(shè)置datePickView的日期格式
        datePick.datePickerMode = UIDatePickerModeDate;
        datePick.locale = [NSLocale localeWithLocaleIdentifier:@"zh"];
        // 監(jiān)聽(tīng)日期改變
        [datePick addTarget:self action:@selector(dateChange:) forControlEvents:UIControlEventValueChanged];
        _datePickView = datePick;
    }
    return _datePickView;
}
// 從XIB拖拽的方式進(jìn)行創(chuàng)建
- (void)awakeFromNib{
    [super awakeFromNib];
    // 改寫輸入框鍵盤類型
    self.inputView = self.datePickView;
    // 一開(kāi)始就有值
    [self dateChange:self.datePickView];
}
// 代碼的方式進(jìn)行創(chuàng)建
- (instancetype)initWithFrame:(CGRect)frame{
    self = [super initWithFrame:frame];
    if (self) {
        // 改寫輸入框鍵盤類型
        self.inputView = self.datePickView;
        // 一開(kāi)始就有值
        [self dateChange:self.datePickView];
    }
    return self;
}
// 當(dāng)UIDatePicker日期改變調(diào)動(dòng)
- (void)dateChange:(UIDatePicker *)datePick{
    // 給當(dāng)前的文本框賦值
    // 獲取當(dāng)前選中的日期
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc]init];
    dateFormatter.dateFormat = @"yyyy-MM-dd";
    //把當(dāng)前日期轉(zhuǎn)化為字符串
    self.text = [dateFormatter stringFromDate:datePick.date];
}
@end

直接引入頭文件#import "YYBirthdayTextField.h"使用即可 或者指定UITextField的類型即可(XIB)

效果圖

日期選擇TF.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容