国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > iOS > 正文

詳解iOS時間選擇框

2020-07-26 03:26:08
字體:
來源:轉載
供稿:網友

本文實例為大家介紹了iOS時間選擇框的示例代碼,供大家參考,具體內容如下

代碼:

一、頭文件

#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;//委托/*** 通過時間創建一個DatePicker** @param date 默認選中時間* @param isHaveNavControler是否在NavControler之內** @return 帶有toolbar的datePicker*/-(instancetype)initDatePickWithDate:(NSDate *)defaulDatedatePickerMode:(UIDatePickerMode)datePickerModeisHaveNavControler:(BOOL)isHaveNavControler;/*** 從窗口移除本控件*/-(void)removeView;/*** 在窗口顯示本控件*/-(void)showView;@end

二、ITTPickView的實現,主要的控件UIToolBar、UIDatePicker,點擊確定后執行-(void)toobarDonBtnHaveClick:(ITTPickView *)

pickView resultString:(NSString *)resultString(因為是可選的委托事件,實現了才會執行);獲得選擇的時間字符串。#import "ITTPickView.h"#define ITTToobarHeight 40@interface ITTPickView ()@property (nonatomic,assign) NSDate *defaulDate;//默認時間@property (nonatomic,strong) UIDatePicker *datePicker;//datePicker控件@property (nonatomic,assign) NSInteger pickeviewHeight;//pickerView的高度@property (nonatomic,strong) UIToolbar *toolbar;//toolBar控件@property (nonatomic,copy) NSString *resultString;//返回的時間字符串@property (nonatomic,assign) NSInteger selfOriginy;//當前view的frame.origin.y@property (nonatomic,assign) NSInteger selfViewInitH;//初始狀態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;}//設定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;//初始狀態view的frame.origin.yself.selfOriginy = toolViewY;//當前view的frame.origin.yself.frame = CGRectMake(toolViewX, toolViewInitH, toolViewW, toolViewH);}//設定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];}//設置toolBar的各個屬性,并作為view的子視圖- (void)setUpToolBar {self.toolbar = [self setToolbarStyle];[self setToolbarWithPickViewFrame];[self addSubview:self.toolbar];}//設置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;}//設定tooBar的frame大小- (void)setToolbarWithPickViewFrame {self.toolbar.frame = CGRectMake(0, 0,[UIScreen mainScreen].bounds.size.width, ITTToobarHeight);}//點擊確定按鈕-(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

三、運用ITTPickView

UIButton *testBitton = [[UIButton alloc] initWithFrame:CGRectMake(0, 450, 111, 40)];[testBitton setBackgroundColor:[UIColor redColor]];[testBitton addTarget:self action:@selector(test) forControlEvents:UIControlEventTouchUpInside];//點擊按鈕彈出時間選擇框- (void)test {ITTPickView *datePicker = [[ITTPickView alloc] initDatePickWithDate:[NSDate date] datePickerMode:UIDatePickerModeDate isHaveNavControler:NO];[datePicker showView];}

以上就是本文的全部內容,希望對大家的學習有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 墨玉县| 和田市| 邹平县| 云梦县| 宝坻区| 内丘县| 陇西县| 永兴县| 正宁县| 同江市| 遵化市| 阜新| 磐石市| 微山县| 内黄县| 奉新县| 宁津县| 水城县| 五莲县| 新竹县| 晋城| 开江县| 神农架林区| 洞头县| 昌邑市| 成都市| 哈巴河县| 洛隆县| 福海县| 广宗县| 东方市| 井研县| 新郑市| 高密市| 锡林郭勒盟| 兴和县| 开平市| 克拉玛依市| 社会| 河北省| 互助|