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

首頁 > 系統 > iOS > 正文

詳解iOS時間選擇框

2019-10-21 18:55:36
字體:
來源:轉載
供稿:網友
這篇文章主要為大家詳細介紹了詳解iOS時間選擇框,感興趣的小伙伴們可以參考一下
 

本文實例為大家介紹了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];}

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



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 都兰县| 诏安县| 宜春市| 东辽县| 晋城| 山西省| 东方市| 新安县| 古田县| 陈巴尔虎旗| 凤凰县| 北安市| 岳西县| 诸暨市| 日照市| 绥阳县| 弋阳县| 双桥区| 阜南县| 武平县| 辉南县| 商洛市| 辽源市| 闸北区| 庆阳市| 涟水县| 弥勒县| 沂水县| 巧家县| 遂昌县| 宁远县| 呼伦贝尔市| 西乌珠穆沁旗| 彩票| 巴中市| 甘孜县| 嘉鱼县| 安宁市| 仙桃市| 读书| 鄂尔多斯市|