武林小編在本文里將實(shí)例為大家介紹IOS時(shí)間選擇框的示例代碼,供大家參考,具體內(nèi)容如下
代碼:
一、頭文件
#import <UIKit/UIKit.h>@class ITTPickView;@protocol ITTPickViewDelegate <NSObject>@optional-(void)toobarDonBtnHaveClick:(ITTPickView *)pickViewresultString:(NSString *)resultString;@end@interface ITTPickView : UIView@property(nonatomic,weak) id<ITTPickViewDelegate> delegate;//委托/*** 通過時(shí)間創(chuàng)建一個(gè)DatePicker** @param date 默認(rèn)選中時(shí)間* @param isHaveNavControler是否在NavControler之內(nèi)** @return 帶有toolbar的datePicker*/-(instancetype)initDatePickWithDate:(NSDate *)defaulDatedatePickerMode:(UIDatePickerMode)datePickerModeisHaveNavControler:(BOOL)isHaveNavControler;/*** 從窗口移除本控件*/-(void)removeView;/*** 在窗口顯示本控件*/-(void)showView;@end
二、ITTPickView的實(shí)現(xiàn),主要的控件UIToolBar、UIDatePicker,點(diǎn)擊確定后執(zhí)行-(void)toobarDonBtnHaveClick:(ITTPickView *)
pickView resultString:(NSString *)resultString(因?yàn)槭强蛇x的委托事件,實(shí)現(xiàn)了才會(huì)執(zhí)行);獲得選擇的時(shí)間字符串。#import "ITTPickView.h"#define ITTToobarHeight 40@interface ITTPickView ()@property (nonatomic,assign) NSDate *defaulDate;//默認(rèn)時(shí)間@property (nonatomic,strong) UIDatePicker *datePicker;//datePicker控件@property (nonatomic,assign) NSInteger pickeviewHeight;//pickerView的高度@property (nonatomic,strong) UIToolbar *toolbar;//toolBar控件@property (nonatomic,copy) NSString *resultString;//返回的時(shí)間字符串@property (nonatomic,assign) NSInteger selfOriginy;//當(dāng)前view的frame.origin.y@property (nonatomic,assign) NSInteger selfViewInitH;//初始狀態(tài)view的frame.origin.y@end@implementation ITTPickView//初始化ITTPickView,- (instancetype)initDatePickWithDate:(NSDate *)defaulDate datePickerMode:(UIDatePickerMode)datePickerMode isHaveNavControler:(BOOL)isHaveNavControler {self = [super init];if (self) {self.defaulDate = defaulDate;[self setUpDatePickerWithdatePickerMode:datePickerMode];[self setFrameWith:isHaveNavControler];[self setUpToolBar];}return self;}//設(shè)定ITTPickView的frame大小-(void)setFrameWith:(BOOL)isHaveNavControler {CGFloat toolViewX = 0;CGFloat toolViewH = self.pickeviewHeight + ITTToobarHeight;CGFloat toolViewY;if (isHaveNavControler) {toolViewY = [UIScreen mainScreen].bounds.size.height - toolViewH - 50;}else {toolViewY = [UIScreen mainScreen].bounds.size.height - toolViewH;}CGFloat toolViewW = [UIScreen mainScreen].bounds.size.width;CGFloat toolViewInitH = [UIScreen mainScreen].bounds.size.height;self.selfViewInitH = toolViewInitH;//初始狀態(tài)view的frame.origin.yself.selfOriginy = toolViewY;//當(dāng)前view的frame.origin.yself.frame = CGRectMake(toolViewX, toolViewInitH, toolViewW, toolViewH);}//設(shè)定datePicker控件的樣式以及frame大小,并作為view的子視圖-(void)setUpDatePickerWithdatePickerMode:(UIDatePickerMode)datePickerMode {UIDatePicker *datePicker = [[UIDatePicker alloc] init];datePicker.locale = [[NSLocale alloc] initWithLocaleIdentifier:@"zh-CN"];datePicker.datePickerMode = datePickerMode;datePicker.backgroundColor = [UIColor whiteColor];if (self.defaulDate) {[datePicker setDate:self.defaulDate];}self.datePicker = datePicker;datePicker.frame = CGRectMake(0, ITTToobarHeight, [UIScreen mainScreen].bounds.size.width, datePicker.frame.size.height);self.pickeviewHeight = datePicker.frame.size.height;[self addSubview:datePicker];}//設(shè)置toolBar的各個(gè)屬性,并作為view的子視圖- (void)setUpToolBar {self.toolbar = [self setToolbarStyle];[self setToolbarWithPickViewFrame];[self addSubview:self.toolbar];}//設(shè)置toolBar的樣式-(UIToolbar *)setToolbarStyle {UIToolbar *toolbar = [[UIToolbar alloc] init];UIBarButtonItem *left = [[UIBarButtonItem alloc] initWithTitle:@" 取消 " style:UIBarButtonItemStylePlain target:self action:@selector(removeView)];UIBarButtonItem *centerSpace = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:self action:nil];UIBarButtonItem *right = [[UIBarButtonItem alloc] initWithTitle:@" 確定 " style:UIBarButtonItemStylePlain target:self action:@selector(doneClick)];toolbar.items = @[lefttem, centerSpace, right];return toolbar;}//設(shè)定tooBar的frame大小- (void)setToolbarWithPickViewFrame {self.toolbar.frame = CGRectMake(0, 0,[UIScreen mainScreen].bounds.size.width, ITTToobarHeight);}//點(diǎn)擊確定按鈕-(void)doneClick {if (self.datePicker) {NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];dateFormatter.dateFormat = @"yyyy-MM-dd";self.resultString = [dateFormatter stringFromDate:self.datePicker.date];}if ([self.delegate respondsToSelector:@selector(toobarDonBtnHaveClick:resultString:)]) {[self.delegate toobarDonBtnHaveClick:self resultString:self.resultString];}[self removeView];}/*** 從窗口移除本控件*/- (void)removeView {[UIView animateWithDuration:0.25f animations:^{self.frame = CGRectMake(self.frame.origin.x, self.selfViewInitH, self.frame.size.width, self.frame.size.height);} completion:^(BOOL finished) {if (finished) {[self removeFromSuperview];}}];}/*** 在窗口顯示本控件*/- (void)showView {[[UIApplication sharedApplication].keyWindow addSubview:self];[UIView animateWithDuration:0.25f animations:^{self.frame = CGRectMake(self.frame.origin.x, self.selfOriginy, self.frame.size.width, self.frame.size.height);} completion:^(BOOL finished) {}];}@end三、運(yùn)用ITTPickView
UIButton *testBitton = [[UIButton alloc] initWithFrame:CGRectMake(0, 450, 111, 40)];[testBitton setBackgroundColor:[UIColor redColor]];[testBitton addTarget:self action:@selector(test) forControlEvents:UIControlEventTouchUpInside];//點(diǎn)擊按鈕彈出時(shí)間選擇框- (void)test {ITTPickView *datePicker = [[ITTPickView alloc] initDatePickWithDate:[NSDate date] datePickerMode:UIDatePickerModeDate isHaveNavControler:NO];[datePicker showView];}以上就是IOS時(shí)間選擇框的示例代碼,如果大家想了解更多相關(guān)內(nèi)容,請(qǐng)持續(xù)關(guān)注武林技術(shù)頻道,本站小編將在第一時(shí)間為大家?guī)砀玫慕?jīng)典內(nèi)容。
新聞熱點(diǎn)
疑難解答
圖片精選