├── CorePickerView ├── pic │ ├── 1.jpg │ ├── 2.png │ └── 3.jpg ├── ViewController.h ├── CorePickerView │ ├── DatePicker │ │ ├── Category │ │ │ ├── NSString+PickerFormat.m │ │ │ ├── NSString+PickerFormat.h │ │ │ ├── NSDate+PickerFormat.h │ │ │ └── NSDate+PickerFormat.m │ │ └── View │ │ │ ├── CoreDatePicker.h │ │ │ └── CoreDatePicker.m │ ├── Common │ │ └── CorePickerViewDefine.h │ ├── One │ │ ├── Model │ │ │ ├── SubObj │ │ │ │ ├── Core1KeyValueObj.m │ │ │ │ └── Core1KeyValueObj.h │ │ │ ├── Core1PickerModel.h │ │ │ └── Core1PickerModel.m │ │ └── View │ │ │ ├── Core1PickerView.h │ │ │ └── Core1PickerView.m │ ├── UITextField+PicerView.h │ └── UITextField+PicerView.m ├── AppDelegate.h ├── main.m ├── Images.xcassets │ └── AppIcon.appiconset │ │ └── Contents.json ├── Info.plist ├── AppDelegate.m ├── ViewController.m └── Base.lproj │ ├── LaunchScreen.xib │ └── Main.storyboard ├── CorePickerViewTests ├── pics │ ├── 1.png │ ├── 2.png │ └── 3.png ├── Info.plist └── CorePickerViewTests.m ├── CorePickerView.xcodeproj ├── project.xcworkspace │ ├── contents.xcworkspacedata │ ├── xcuserdata │ │ └── Charlin.xcuserdatad │ │ │ ├── UserInterfaceState.xcuserstate │ │ │ └── WorkspaceSettings.xcsettings │ └── xcshareddata │ │ └── CorePickerView.xccheckout ├── xcuserdata │ └── Charlin.xcuserdatad │ │ ├── xcdebugger │ │ └── Breakpoints_v2.xcbkptlist │ │ └── xcschemes │ │ ├── xcschememanagement.plist │ │ └── CorePickerView.xcscheme └── project.pbxproj └── README.md /CorePickerView/pic/1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CharlinFeng/CorePickerView/HEAD/CorePickerView/pic/1.jpg -------------------------------------------------------------------------------- /CorePickerView/pic/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CharlinFeng/CorePickerView/HEAD/CorePickerView/pic/2.png -------------------------------------------------------------------------------- /CorePickerView/pic/3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CharlinFeng/CorePickerView/HEAD/CorePickerView/pic/3.jpg -------------------------------------------------------------------------------- /CorePickerViewTests/pics/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CharlinFeng/CorePickerView/HEAD/CorePickerViewTests/pics/1.png -------------------------------------------------------------------------------- /CorePickerViewTests/pics/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CharlinFeng/CorePickerView/HEAD/CorePickerViewTests/pics/2.png -------------------------------------------------------------------------------- /CorePickerViewTests/pics/3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CharlinFeng/CorePickerView/HEAD/CorePickerViewTests/pics/3.png -------------------------------------------------------------------------------- /CorePickerView.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /CorePickerView.xcodeproj/project.xcworkspace/xcuserdata/Charlin.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CharlinFeng/CorePickerView/HEAD/CorePickerView.xcodeproj/project.xcworkspace/xcuserdata/Charlin.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /CorePickerView/ViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.h 3 | // CorePickerView 4 | // 5 | // Created by 冯成林 on 15/3/25. 6 | // Copyright (c) 2015年 冯成林. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface ViewController : UIViewController 12 | 13 | 14 | @end 15 | 16 | -------------------------------------------------------------------------------- /CorePickerView/CorePickerView/DatePicker/Category/NSString+PickerFormat.m: -------------------------------------------------------------------------------- 1 | // 2 | // NSString+PickerFormat.m 3 | // CorePickerView 4 | // 5 | // Created by 冯成林 on 15/3/25. 6 | // Copyright (c) 2015年 冯成林. All rights reserved. 7 | // 8 | 9 | #import "NSString+PickerFormat.h" 10 | 11 | @implementation NSString (PickerFormat) 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /CorePickerView/CorePickerView/DatePicker/Category/NSString+PickerFormat.h: -------------------------------------------------------------------------------- 1 | // 2 | // NSString+PickerFormat.h 3 | // CorePickerView 4 | // 5 | // Created by 冯成林 on 15/3/25. 6 | // Copyright (c) 2015年 冯成林. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface NSString (PickerFormat) 12 | 13 | 14 | 15 | 16 | 17 | 18 | @end 19 | -------------------------------------------------------------------------------- /CorePickerView/AppDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.h 3 | // CorePickerView 4 | // 5 | // Created by 冯成林 on 15/3/25. 6 | // Copyright (c) 2015年 冯成林. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface AppDelegate : UIResponder 12 | 13 | @property (strong, nonatomic) UIWindow *window; 14 | 15 | 16 | @end 17 | 18 | -------------------------------------------------------------------------------- /CorePickerView/main.m: -------------------------------------------------------------------------------- 1 | // 2 | // main.m 3 | // CorePickerView 4 | // 5 | // Created by 冯成林 on 15/3/25. 6 | // Copyright (c) 2015年 冯成林. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "AppDelegate.h" 11 | 12 | int main(int argc, char * argv[]) { 13 | @autoreleasepool { 14 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /CorePickerView.xcodeproj/project.xcworkspace/xcuserdata/Charlin.xcuserdatad/WorkspaceSettings.xcsettings: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | HasAskedToTakeAutomaticSnapshotBeforeSignificantChanges 6 | 7 | SnapshotAutomaticallyBeforeSignificantChanges 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /CorePickerView/CorePickerView/Common/CorePickerViewDefine.h: -------------------------------------------------------------------------------- 1 | // 2 | // CorePickerViewDefine.h 3 | // CorePickerView 4 | // 5 | // Created by 冯成林 on 15/3/25. 6 | // Copyright (c) 2015年 冯成林. All rights reserved. 7 | // 8 | 9 | #ifndef CorePickerView_CorePickerViewDefine_h 10 | #define CorePickerView_CorePickerViewDefine_h 11 | 12 | #define rgba(r,g,b,a) [UIColor colorWithRed:r/255.0f green:g/255.0f blue:b/255.0f alpha:a] 13 | 14 | #define PickerViewBgColor rgba(249,249,249,.95f) 15 | 16 | #endif 17 | -------------------------------------------------------------------------------- /CorePickerView/CorePickerView/DatePicker/Category/NSDate+PickerFormat.h: -------------------------------------------------------------------------------- 1 | // 2 | // NSDate+PickerFormat.h 3 | // CorePickerView 4 | // 5 | // Created by 冯成林 on 15/3/25. 6 | // Copyright (c) 2015年 冯成林. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface NSDate (PickerFormat) 12 | 13 | 14 | /* 15 | * 时间戳 16 | */ 17 | @property (nonatomic,copy,readonly) NSString *timestamp; 18 | 19 | 20 | 21 | /* 22 | * NSDate->格式化字符串 23 | */ 24 | -(NSString *)dateFormatter:(NSString *)formatter; 25 | 26 | 27 | @end 28 | -------------------------------------------------------------------------------- /CorePickerView.xcodeproj/xcuserdata/Charlin.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 8 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /CorePickerView/CorePickerView/One/Model/SubObj/Core1KeyValueObj.m: -------------------------------------------------------------------------------- 1 | // 2 | // Core1KeyValueObj.m 3 | // CorePickerView 4 | // 5 | // Created by 冯成林 on 15/3/25. 6 | // Copyright (c) 2015年 冯成林. All rights reserved. 7 | // 8 | 9 | #import "Core1KeyValueObj.h" 10 | 11 | @implementation Core1KeyValueObj 12 | 13 | 14 | 15 | 16 | /* 17 | * 自行实例化 18 | */ 19 | +(instancetype)obj:(NSUInteger)hostID content:(NSString *)content{ 20 | 21 | Core1KeyValueObj *obj=[[self alloc] init]; 22 | 23 | obj.hostID=hostID; 24 | 25 | obj.content=content; 26 | 27 | return obj; 28 | } 29 | 30 | 31 | 32 | @end 33 | -------------------------------------------------------------------------------- /CorePickerView/CorePickerView/One/Model/SubObj/Core1KeyValueObj.h: -------------------------------------------------------------------------------- 1 | // 2 | // Core1KeyValueObj.h 3 | // CorePickerView 4 | // 5 | // Created by 冯成林 on 15/3/25. 6 | // Copyright (c) 2015年 冯成林. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface Core1KeyValueObj : NSObject 12 | 13 | 14 | /* 15 | * 服务器ID:UI对应的值 16 | */ 17 | @property (nonatomic,assign) NSUInteger hostID; 18 | 19 | 20 | /* 21 | * UI值(若此字段与服务器返回的字段不一致,请使用MJ的replaceKey方法解决) 22 | */ 23 | @property (nonatomic,copy) NSString *content; 24 | 25 | 26 | 27 | 28 | 29 | /* 30 | * 自行实例化 31 | */ 32 | +(instancetype)obj:(NSUInteger)hostID content:(NSString *)content; 33 | 34 | 35 | @end 36 | -------------------------------------------------------------------------------- /CorePickerView.xcodeproj/xcuserdata/Charlin.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | CorePickerView.xcscheme 8 | 9 | orderHint 10 | 0 11 | 12 | 13 | SuppressBuildableAutocreation 14 | 15 | 8978837E1AC2D71800142C10 16 | 17 | primary 18 | 19 | 20 | 897883971AC2D71800142C10 21 | 22 | primary 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /CorePickerView/Images.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "iphone", 5 | "size" : "29x29", 6 | "scale" : "2x" 7 | }, 8 | { 9 | "idiom" : "iphone", 10 | "size" : "29x29", 11 | "scale" : "3x" 12 | }, 13 | { 14 | "idiom" : "iphone", 15 | "size" : "40x40", 16 | "scale" : "2x" 17 | }, 18 | { 19 | "idiom" : "iphone", 20 | "size" : "40x40", 21 | "scale" : "3x" 22 | }, 23 | { 24 | "idiom" : "iphone", 25 | "size" : "60x60", 26 | "scale" : "2x" 27 | }, 28 | { 29 | "idiom" : "iphone", 30 | "size" : "60x60", 31 | "scale" : "3x" 32 | } 33 | ], 34 | "info" : { 35 | "version" : 1, 36 | "author" : "xcode" 37 | } 38 | } -------------------------------------------------------------------------------- /CorePickerView/CorePickerView/DatePicker/View/CoreDatePicker.h: -------------------------------------------------------------------------------- 1 | // 2 | // CoreDatePicker.h 3 | // CorePickerView 4 | // 5 | // Created by 冯成林 on 15/3/25. 6 | // Copyright (c) 2015年 冯成林. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "NSDate+PickerFormat.h" 11 | 12 | @interface CoreDatePicker : UIDatePicker 13 | 14 | 15 | /* 16 | * 所属的textField 17 | */ 18 | @property (nonatomic,weak) UITextField *textField; 19 | 20 | 21 | 22 | /* 23 | * UI视觉上的值:格式化的字符串 24 | */ 25 | @property (nonatomic,copy) NSString *selectedUIValue; 26 | 27 | 28 | /* 29 | * UI视觉上的值对应的真实的值,常常用于服务器上传:时间戳 30 | */ 31 | @property (nonatomic,copy) NSString *selectedRealValue; 32 | 33 | 34 | 35 | 36 | 37 | /* 38 | * 实例化 39 | */ 40 | +(instancetype)datePicker:(NSString *)formatter; 41 | 42 | 43 | 44 | @end 45 | -------------------------------------------------------------------------------- /CorePickerViewTests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | HM.$(PRODUCT_NAME:rfc1034identifier) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | BNDL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1 23 | 24 | 25 | -------------------------------------------------------------------------------- /CorePickerView/CorePickerView/UITextField+PicerView.h: -------------------------------------------------------------------------------- 1 | // 2 | // UITextField+PicerView.h 3 | // CorePickerView 4 | // 5 | // Created by 冯成林 on 15/3/25. 6 | // Copyright (c) 2015年 冯成林. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "Core1PickerView.h" 11 | #import "Core1KeyValueObj.h" 12 | #import "CoreDatePicker.h" 13 | 14 | @interface UITextField (PicerView) 15 | 16 | 17 | 18 | /* 19 | * 自定义的单列pickerView 20 | */ 21 | @property (nonatomic,weak) Core1PickerView *input1pickerView; 22 | 23 | 24 | 25 | /* 26 | * 时间选取pickerView 27 | */ 28 | @property (nonatomic,weak) CoreDatePicker *datePicker; 29 | 30 | 31 | 32 | 33 | 34 | 35 | /* 36 | * 添加一个inputView:单列 37 | */ 38 | -(void)add1PickerView:(Core1PickerView *)input1PickerView; 39 | 40 | 41 | 42 | 43 | /* 44 | * 添加时间选择器控件 45 | */ 46 | -(void)addDatePickerView:(CoreDatePicker *)datePicker; 47 | 48 | 49 | 50 | 51 | 52 | 53 | @end 54 | -------------------------------------------------------------------------------- /CorePickerView/CorePickerView/One/View/Core1PickerView.h: -------------------------------------------------------------------------------- 1 | // 2 | // CoreCommonPickerView.h 3 | // CorePickerView 4 | // 5 | // Created by 冯成林 on 15/3/25. 6 | // Copyright (c) 2015年 冯成林. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "Core1PickerModel.h" 11 | 12 | @interface Core1PickerView : UIPickerView 13 | 14 | 15 | /* 16 | * 所属的textField 17 | */ 18 | @property (nonatomic,weak) UITextField *textField; 19 | 20 | 21 | /* 22 | * 数据模型 23 | */ 24 | @property (nonatomic,strong) Core1PickerModel *pickerModel; 25 | 26 | 27 | 28 | 29 | /* 30 | * UI视觉上的值 31 | */ 32 | @property (nonatomic,copy) NSString *selectedUIValue; 33 | 34 | /* 35 | * UI视觉上的值对应的真实的值,常常用于服务器上传。 36 | */ 37 | @property (nonatomic,copy) NSString *selectedRealValue; 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | +(instancetype)pickerView:(Core1PickerModel *)pickerModel; 71 | 72 | 73 | @end 74 | -------------------------------------------------------------------------------- /CorePickerViewTests/CorePickerViewTests.m: -------------------------------------------------------------------------------- 1 | // 2 | // CorePickerViewTests.m 3 | // CorePickerViewTests 4 | // 5 | // Created by 冯成林 on 15/3/25. 6 | // Copyright (c) 2015年 冯成林. All rights reserved. 7 | // 8 | 9 | #import 10 | #import 11 | 12 | @interface CorePickerViewTests : XCTestCase 13 | 14 | @end 15 | 16 | @implementation CorePickerViewTests 17 | 18 | - (void)setUp { 19 | [super setUp]; 20 | // Put setup code here. This method is called before the invocation of each test method in the class. 21 | } 22 | 23 | - (void)tearDown { 24 | // Put teardown code here. This method is called after the invocation of each test method in the class. 25 | [super tearDown]; 26 | } 27 | 28 | - (void)testExample { 29 | // This is an example of a functional test case. 30 | XCTAssert(YES, @"Pass"); 31 | } 32 | 33 | - (void)testPerformanceExample { 34 | // This is an example of a performance test case. 35 | [self measureBlock:^{ 36 | // Put the code you want to measure the time of here. 37 | }]; 38 | } 39 | 40 | @end 41 | -------------------------------------------------------------------------------- /CorePickerView/CorePickerView/DatePicker/Category/NSDate+PickerFormat.m: -------------------------------------------------------------------------------- 1 | // 2 | // NSDate+PickerFormat.m 3 | // CorePickerView 4 | // 5 | // Created by 冯成林 on 15/3/25. 6 | // Copyright (c) 2015年 冯成林. All rights reserved. 7 | // 8 | 9 | #import "NSDate+PickerFormat.h" 10 | 11 | @implementation NSDate (PickerFormat) 12 | 13 | 14 | 15 | /* 16 | * 时间戳 17 | */ 18 | -(NSString *)timestamp{ 19 | 20 | //计算时间戳: 21 | NSInteger timestamp=(NSInteger)[self timeIntervalSince1970]; 22 | 23 | NSString *timestampString=[NSString stringWithFormat:@"%li",(long)timestamp]; 24 | 25 | //返回 26 | return timestampString; 27 | } 28 | 29 | 30 | 31 | /* 32 | * NSDate->格式化字符串 33 | */ 34 | -(NSString *)dateFormatter:(NSString *)formatter{ 35 | 36 | //实例化时间格式化工具 37 | NSDateFormatter *formatterTool=[[NSDateFormatter alloc] init]; 38 | 39 | //定义格式 40 | formatterTool.dateFormat=formatter; 41 | 42 | //时间转化为字符串 43 | NSString *dateString = [formatterTool stringFromDate:self]; 44 | 45 | return dateString; 46 | } 47 | 48 | 49 | 50 | 51 | @end 52 | -------------------------------------------------------------------------------- /CorePickerView/CorePickerView/One/Model/Core1PickerModel.h: -------------------------------------------------------------------------------- 1 | // 2 | // CorePickerModel.h 3 | // CorePickerView 4 | // 5 | // Created by 冯成林 on 15/3/25. 6 | // Copyright (c) 2015年 冯成林. All rights reserved. 7 | // 8 | 9 | #import 10 | #import 11 | 12 | typedef enum{ 13 | 14 | /* 15 | * 普通值 16 | */ 17 | Core1PickerModelTypeNorMal=0, 18 | 19 | 20 | /* 21 | * 键值对 22 | */ 23 | Core1PickerModelTypeKeyValue, 24 | 25 | 26 | 27 | 28 | }Core1PickerModelType; 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | @interface Core1PickerModel : NSObject 38 | 39 | 40 | /* 41 | * 数据数组 42 | */ 43 | @property (nonatomic,strong) NSArray *dataList; 44 | 45 | 46 | 47 | /* 48 | * 辅助提示数据 49 | */ 50 | @property (nonatomic,copy) NSString *warnStr; 51 | 52 | 53 | 54 | /* 55 | * 类型 56 | */ 57 | @property (nonatomic,assign) Core1PickerModelType type; 58 | 59 | 60 | 61 | 62 | /* 63 | * 将UIValue转为RealValue 64 | */ 65 | -(id)selectedRealValueWithUIValue:(NSString *)selectedUIValue; 66 | 67 | 68 | 69 | 70 | 71 | /* 72 | * 快速创建 73 | */ 74 | +(instancetype)pickerModel:(NSArray *)dataList; 75 | 76 | 77 | @end 78 | -------------------------------------------------------------------------------- /CorePickerView/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | HM.$(PRODUCT_NAME:rfc1034identifier) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | APPL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1 23 | LSRequiresIPhoneOS 24 | 25 | UILaunchStoryboardName 26 | LaunchScreen 27 | UIMainStoryboardFile 28 | Main 29 | UIRequiredDeviceCapabilities 30 | 31 | armv7 32 | 33 | UISupportedInterfaceOrientations 34 | 35 | UIInterfaceOrientationPortrait 36 | UIInterfaceOrientationLandscapeLeft 37 | UIInterfaceOrientationLandscapeRight 38 | 39 | 40 | 41 | -------------------------------------------------------------------------------- /CorePickerView/CorePickerView/DatePicker/View/CoreDatePicker.m: -------------------------------------------------------------------------------- 1 | // 2 | // CoreDatePicker.m 3 | // CorePickerView 4 | // 5 | // Created by 冯成林 on 15/3/25. 6 | // Copyright (c) 2015年 冯成林. All rights reserved. 7 | // 8 | 9 | #import "CoreDatePicker.h" 10 | #import "CorePickerViewDefine.h" 11 | 12 | 13 | 14 | @interface CoreDatePicker () 15 | 16 | @property (nonatomic,copy) NSString *formatter; 17 | 18 | @end 19 | 20 | 21 | @implementation CoreDatePicker 22 | 23 | 24 | /* 25 | * 实例化 26 | */ 27 | +(instancetype)datePicker:(NSString *)formatter{ 28 | 29 | CoreDatePicker *datePicker=[[self alloc] init]; 30 | 31 | //背景色 32 | datePicker.backgroundColor=PickerViewBgColor; 33 | 34 | datePicker.formatter=formatter; 35 | 36 | //本地化 37 | datePicker.locale=[NSLocale localeWithLocaleIdentifier:@"zh_CH"]; 38 | 39 | //事件 40 | [datePicker addTarget:datePicker action:@selector(selectedDatePickerRow:) forControlEvents:UIControlEventValueChanged]; 41 | 42 | return datePicker; 43 | } 44 | 45 | 46 | 47 | 48 | 49 | -(void)selectedDatePickerRow:(CoreDatePicker *)datePicker{ 50 | 51 | NSDate *date=datePicker.date; 52 | 53 | NSString *formatString=[date dateFormatter:_formatter]; 54 | 55 | NSString *timeStamp=date.timestamp; 56 | 57 | //界面显示 58 | _textField.text=formatString; 59 | 60 | //UI值 61 | _selectedUIValue=formatString; 62 | 63 | //真实值 64 | _selectedRealValue=timeStamp; 65 | } 66 | 67 | 68 | 69 | 70 | 71 | @end 72 | -------------------------------------------------------------------------------- /CorePickerView.xcodeproj/project.xcworkspace/xcshareddata/CorePickerView.xccheckout: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDESourceControlProjectFavoriteDictionaryKey 6 | 7 | IDESourceControlProjectIdentifier 8 | 30EA4204-D6BB-4443-AAD1-217C612E830B 9 | IDESourceControlProjectName 10 | CorePickerView 11 | IDESourceControlProjectOriginsDictionary 12 | 13 | 386231E51047479418ECAC791ECDC956BE195986 14 | https://github.com/nsdictionary/CorePickerView.git 15 | 16 | IDESourceControlProjectPath 17 | CorePickerView.xcodeproj 18 | IDESourceControlProjectRelativeInstallPathDictionary 19 | 20 | 386231E51047479418ECAC791ECDC956BE195986 21 | ../.. 22 | 23 | IDESourceControlProjectURL 24 | https://github.com/nsdictionary/CorePickerView.git 25 | IDESourceControlProjectVersion 26 | 111 27 | IDESourceControlProjectWCCIdentifier 28 | 386231E51047479418ECAC791ECDC956BE195986 29 | IDESourceControlProjectWCConfigurations 30 | 31 | 32 | IDESourceControlRepositoryExtensionIdentifierKey 33 | public.vcs.git 34 | IDESourceControlWCCIdentifierKey 35 | 386231E51047479418ECAC791ECDC956BE195986 36 | IDESourceControlWCCName 37 | CorePickerView 38 | 39 | 40 | 41 | 42 | -------------------------------------------------------------------------------- /CorePickerView/CorePickerView/UITextField+PicerView.m: -------------------------------------------------------------------------------- 1 | // 2 | // UITextField+PicerView.m 3 | // CorePickerView 4 | // 5 | // Created by 冯成林 on 15/3/25. 6 | // Copyright (c) 2015年 冯成林. All rights reserved. 7 | // 8 | 9 | #import "UITextField+PicerView.h" 10 | #import 11 | 12 | #pragma mark - 运行时相关 13 | static char CorePickerViewKey; 14 | static char CoreDatePickerKey; 15 | 16 | @implementation UITextField (PicerView) 17 | 18 | 19 | /* 20 | * 添加一个inputView:单列 21 | */ 22 | -(void)add1PickerView:(Core1PickerView *)input1PickerView{ 23 | 24 | self.inputView=input1PickerView; 25 | 26 | //记录成员变量 27 | self.input1pickerView=input1PickerView; 28 | 29 | //记录 30 | input1PickerView.textField=self; 31 | } 32 | 33 | 34 | 35 | /* 36 | * 添加时间选择器控件 37 | */ 38 | -(void)addDatePickerView:(CoreDatePicker *)datePicker{ 39 | 40 | self.inputView=datePicker; 41 | 42 | //记录成员变量 43 | self.datePicker=datePicker; 44 | 45 | //记录 46 | datePicker.textField=self; 47 | } 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | /* 60 | * 运行时模拟成员变量 61 | */ 62 | 63 | -(void)setDatePicker:(CoreDatePicker *)datePicker{ 64 | [self willChangeValueForKey:@"CoreDatePickerKey"]; 65 | objc_setAssociatedObject(self, &CoreDatePickerKey, 66 | datePicker, 67 | OBJC_ASSOCIATION_ASSIGN); 68 | [self didChangeValueForKey:@"CoreDatePickerKey"]; 69 | } 70 | 71 | 72 | -(CoreDatePicker *)datePicker{ 73 | return objc_getAssociatedObject(self, &CoreDatePickerKey); 74 | } 75 | 76 | 77 | 78 | 79 | 80 | 81 | -(void)setInput1pickerView:(Core1PickerView *)input1pickerView{ 82 | [self willChangeValueForKey:@"CorePickerViewKey"]; 83 | objc_setAssociatedObject(self, &CorePickerViewKey, 84 | input1pickerView, 85 | OBJC_ASSOCIATION_ASSIGN); 86 | [self didChangeValueForKey:@"CorePickerViewKey"]; 87 | } 88 | 89 | 90 | 91 | -(Core1PickerView *)input1pickerView{ 92 | return objc_getAssociatedObject(self, &CorePickerViewKey); 93 | } 94 | 95 | 96 | 97 | @end 98 | -------------------------------------------------------------------------------- /CorePickerView/AppDelegate.m: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.m 3 | // CorePickerView 4 | // 5 | // Created by 冯成林 on 15/3/25. 6 | // Copyright (c) 2015年 冯成林. All rights reserved. 7 | // 8 | 9 | #import "AppDelegate.h" 10 | 11 | @interface AppDelegate () 12 | 13 | @end 14 | 15 | @implementation AppDelegate 16 | 17 | 18 | - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 19 | // Override point for customization after application launch. 20 | return YES; 21 | } 22 | 23 | - (void)applicationWillResignActive:(UIApplication *)application { 24 | // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state. 25 | // Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game. 26 | } 27 | 28 | - (void)applicationDidEnterBackground:(UIApplication *)application { 29 | // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later. 30 | // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits. 31 | } 32 | 33 | - (void)applicationWillEnterForeground:(UIApplication *)application { 34 | // Called as part of the transition from the background to the inactive state; here you can undo many of the changes made on entering the background. 35 | } 36 | 37 | - (void)applicationDidBecomeActive:(UIApplication *)application { 38 | // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface. 39 | } 40 | 41 | - (void)applicationWillTerminate:(UIApplication *)application { 42 | // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:. 43 | } 44 | 45 | @end 46 | -------------------------------------------------------------------------------- /CorePickerView/CorePickerView/One/Model/Core1PickerModel.m: -------------------------------------------------------------------------------- 1 | // 2 | // CorePickerModel.m 3 | // CorePickerView 4 | // 5 | // Created by 冯成林 on 15/3/25. 6 | // Copyright (c) 2015年 冯成林. All rights reserved. 7 | // 8 | 9 | #import "Core1PickerModel.h" 10 | #import "Core1KeyValueObj.h" 11 | 12 | 13 | @implementation Core1PickerModel 14 | 15 | 16 | /* 17 | * 快速创建 18 | */ 19 | +(instancetype)pickerModel:(NSArray *)dataList{ 20 | 21 | Core1PickerModel *pickerModel=[[self alloc] init]; 22 | 23 | pickerModel.dataList=dataList; 24 | 25 | return pickerModel; 26 | } 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | -(void)setDataList:(NSArray *)dataList{ 36 | 37 | NSMutableArray *dataListM=[NSMutableArray arrayWithArray:dataList]; 38 | 39 | //计算type值 40 | [self calType:dataList]; 41 | 42 | //添加第一个提示对象 43 | id firstWarnObj=[self warnObjWithType]; 44 | 45 | [dataListM insertObject:firstWarnObj atIndex:0]; 46 | 47 | _dataList=[dataListM copy]; 48 | } 49 | 50 | 51 | /* 52 | * 计算type值 53 | */ 54 | -(void)calType:(NSArray *)dataList{ 55 | 56 | //直接取出第一个对象 57 | id obj=dataList.firstObject; 58 | 59 | self.type = ([obj isKindOfClass:[Core1KeyValueObj class]])?Core1PickerModelTypeKeyValue:Core1PickerModelTypeNorMal; 60 | } 61 | 62 | 63 | /* 64 | * 根据type值返回第一个提示对象 65 | */ 66 | -(id)warnObjWithType{ 67 | 68 | if(Core1PickerModelTypeKeyValue == self.type) return [Core1KeyValueObj obj:0 content:self.warnStr]; 69 | 70 | return self.warnStr; 71 | } 72 | 73 | 74 | 75 | 76 | -(NSString *)warnStr{ 77 | 78 | if(_warnStr==nil){ 79 | 80 | _warnStr=@"请选择"; 81 | } 82 | 83 | return _warnStr; 84 | } 85 | 86 | 87 | 88 | /* 89 | * 将UIValue转为RealValue 90 | */ 91 | -(id)selectedRealValueWithUIValue:(NSString *)selectedUIValue{ 92 | 93 | //如果是普通模型 94 | if(Core1PickerModelTypeNorMal == _type) return selectedUIValue; 95 | 96 | for (Core1KeyValueObj *keyValueObj in _dataList) { 97 | 98 | if(![keyValueObj.content isEqualToString:selectedUIValue]) continue; 99 | 100 | return @(keyValueObj.hostID); 101 | } 102 | 103 | return @(0); 104 | } 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | @end 120 | -------------------------------------------------------------------------------- /CorePickerView/CorePickerView/One/View/Core1PickerView.m: -------------------------------------------------------------------------------- 1 | // 2 | // CoreCommonPickerView.m 3 | // CorePickerView 4 | // 5 | // Created by 冯成林 on 15/3/25. 6 | // Copyright (c) 2015年 冯成林. All rights reserved. 7 | // 8 | 9 | #import "Core1PickerView.h" 10 | #import "Core1KeyValueObj.h" 11 | #import "CorePickerViewDefine.h" 12 | 13 | @interface Core1PickerView () 14 | 15 | @end 16 | 17 | 18 | @implementation Core1PickerView 19 | 20 | +(instancetype)pickerView:(Core1PickerModel *)pickerModel{ 21 | 22 | Core1PickerView *pickerView=[[self alloc] initWithFrame:CGRectZero]; 23 | 24 | pickerView.pickerModel=pickerModel; 25 | 26 | pickerView.backgroundColor=PickerViewBgColor; 27 | 28 | //设置数据源及代理 29 | pickerView.dataSource=pickerView; 30 | pickerView.delegate=pickerView; 31 | 32 | 33 | return pickerView; 34 | } 35 | 36 | 37 | 38 | 39 | /* 40 | * 代理方法区 41 | */ 42 | 43 | /* 44 | * 共有多少列 45 | */ 46 | -(NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView{ 47 | return 1; 48 | } 49 | 50 | /* 51 | * 列内有多少行 52 | */ 53 | -(NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component{ 54 | return _pickerModel.dataList.count; 55 | } 56 | 57 | 58 | /* 59 | * 每列显示数据 60 | */ 61 | -(NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component{ 62 | 63 | //如果是键值模型 64 | if(Core1PickerModelTypeKeyValue == _pickerModel.type) { 65 | 66 | Core1KeyValueObj *keyValueObj=(Core1KeyValueObj *) _pickerModel.dataList[row]; 67 | 68 | return keyValueObj.content; 69 | } 70 | 71 | return _pickerModel.dataList[row]; 72 | } 73 | 74 | 75 | 76 | 77 | 78 | /* 79 | * 值改变 80 | */ 81 | -(void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component{ 82 | 83 | NSString *str=@""; 84 | 85 | //如果是键值模型 86 | if(Core1PickerModelTypeKeyValue == _pickerModel.type) { 87 | 88 | Core1KeyValueObj *keyValueObj=(Core1KeyValueObj *) _pickerModel.dataList[row]; 89 | 90 | str=keyValueObj.content; 91 | 92 | if([keyValueObj.content isEqualToString:_pickerModel.warnStr]) str=@""; 93 | 94 | }else{ 95 | 96 | str=_pickerModel.dataList[row]; 97 | 98 | if([str isEqualToString:_pickerModel.warnStr]) str=@""; 99 | } 100 | 101 | //UI值 102 | _selectedUIValue=str; 103 | 104 | //UI对应值 105 | _selectedRealValue=[_pickerModel selectedRealValueWithUIValue:str]; 106 | 107 | _textField.text=str; 108 | } 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | @end 120 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | 2 | Charlin出框架的目标:简单、易用、实用、高度封装、绝对解耦! 3 | 4 | # CorePickerView 5 | 极简选取器,一安一取,简单方便! 6 |
7 | ####框架特性:
8 | >1.极大程度的封装了pickerView和datePickerView。
9 | >2.使用无需记录成员变量,直接安装,直接使用。
10 | >3.扩展了UITextField,使用方便,便于理解,textField安装,textField取值,逻辑十分合理。
11 | >4.考虑了数据来源服务器的情况,对键值对式的pickerView做了比较好的处理。
12 | >5.加入了选取首行提示,更加友好。
13 | >6.无需麻烦的代理,事件监听,无需手动设置textField的值,无需复杂计算键值对应取值,全部已经搞定。
14 | >7.根据业务需要,目前支持普通单列/键值单列/时间选取,后续会持续完善其他功能,并尽量大统一API。
15 | 16 | 17 | 18 | 19 |

20 | ####使用示例:
21 | #import "UITextField+PicerView.h" 22 | 23 | 普通单列 24 | 安装: 25 | //创建模型 26 | Core1PickerModel *pickerModel=[Core1PickerModel pickerModel:@[@"男",@"女"]]; 27 | 28 | //创建pickerView 29 | Core1PickerView *sexPicerView=[Core1PickerView pickerView:pickerModel]; 30 | 31 | [_tf1 add1PickerView:sexPicerView]; 32 | 33 | 读取: 34 | NSString *uiValue=_tf1.input1pickerView.selectedUIValue; 35 | NSString *realValue=_tf1.input1pickerView.selectedRealValue; 36 | 37 | NSLog(@"tf1:uiValue=%@,realValue=%@",uiValue,realValue); 38 | 39 | 40 | 41 | 键值单列: 42 | 安装: 43 | Core1KeyValueObj *obj1= [Core1KeyValueObj obj:1 content:@"大众"]; 44 | Core1KeyValueObj *obj2= [Core1KeyValueObj obj:2 content:@"宝马"]; 45 | Core1KeyValueObj *obj3= [Core1KeyValueObj obj:3 content:@"奔驰"]; 46 | Core1KeyValueObj *obj4= [Core1KeyValueObj obj:4 content:@"福特"]; 47 | 48 | //建立模型 49 | Core1PickerModel *pickerModel=[Core1PickerModel pickerModel:@[obj1,obj2,obj3,obj4]]; 50 | 51 | //建立pickerView 52 | Core1PickerView *pickerView=[Core1PickerView pickerView:pickerModel]; 53 | 54 | //添加 55 | [_tf2 add1PickerView:pickerView]; 56 | 57 | 读取: 58 | NSString *uiValue=_tf2.input1pickerView.selectedUIValue; 59 | NSString *realValue=_tf2.input1pickerView.selectedRealValue; 60 | 61 | NSLog(@"tf2:uiValue=%@,realValue=%@",uiValue,realValue); 62 | 63 | 64 | 65 | 66 | 日期选取: 67 | 安装: 68 | //建立datePicker 69 | CoreDatePicker *datePicker=[CoreDatePicker datePicker:@"yyyy-MM-dd HH:mm:ss"]; 70 | 71 | [_tf3 addDatePickerView:datePicker]; 72 | 73 | 74 | 读取: 75 | NSString *uiValue=_tf3.datePicker.selectedUIValue; 76 | NSString *timeStamp=_tf3.datePicker.selectedRealValue; 77 | 78 | NSLog(@"tf3:uiValue=%@,realValue=%@",uiValue,timeStamp); 79 | 80 | 81 | ####效果图:
82 | ![image](./CorePickerView/pic/1.jpg)

83 | ![image](./CorePickerView/pic/2.png)

84 | ![image](./CorePickerView/pic/3.jpg)

85 |

86 | ----- 87 | CorePickerView 极简选取器,一安一取,简单方便! 88 | ----- 89 | 90 |

91 | 92 | #### 版权说明 RIGHTS
93 | 作品说明:本框架由iOS开发攻城狮Charlin制作。
94 | 作品时间: 2013.03.11 11:07
95 | 96 | 97 | #### 关于Chariln INTRODUCE
98 | 作者简介:Charlin-四川成都华西都市报旗下华西都市网络有限公司技术部iOS工程师!

99 | 100 | 101 | #### 联系方式 CONTACT
102 | Q Q:1761904945(请注明缘由)
103 | Mail:1761904945@qq.com
104 | 105 | -------------------------------------------------------------------------------- /CorePickerView/ViewController.m: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.m 3 | // CorePickerView 4 | // 5 | // Created by 冯成林 on 15/3/25. 6 | // Copyright (c) 2015年 冯成林. All rights reserved. 7 | // 8 | 9 | #import "ViewController.h" 10 | #import "UITextField+PicerView.h" 11 | 12 | @interface ViewController () 13 | 14 | @property (weak, nonatomic) IBOutlet UITextField *tf1; 15 | 16 | @property (weak, nonatomic) IBOutlet UITextField *tf2; 17 | 18 | @property (weak, nonatomic) IBOutlet UITextField *tf3; 19 | 20 | 21 | 22 | 23 | @end 24 | 25 | @implementation ViewController 26 | 27 | - (void)viewDidLoad { 28 | [super viewDidLoad]; 29 | 30 | //普通的pickerView 31 | [self normalPickerView]; 32 | 33 | //键盘模型 34 | [self keyvaluesPickerView]; 35 | 36 | //日期选取 37 | [self datePicker]; 38 | } 39 | 40 | 41 | 42 | 43 | /* 44 | * 普通的pickerView 45 | */ 46 | -(void)normalPickerView{ 47 | 48 | //创建模型 49 | Core1PickerModel *pickerModel=[Core1PickerModel pickerModel:@[@"男",@"女"]]; 50 | 51 | //创建pickerView 52 | Core1PickerView *sexPicerView=[Core1PickerView pickerView:pickerModel]; 53 | 54 | [_tf1 add1PickerView:sexPicerView]; 55 | } 56 | 57 | 58 | 59 | 60 | /* 61 | * 键值对pickerView 62 | */ 63 | -(void)keyvaluesPickerView{ 64 | 65 | 66 | 67 | Core1KeyValueObj *obj1= [Core1KeyValueObj obj:1 content:@"大众"]; 68 | Core1KeyValueObj *obj2= [Core1KeyValueObj obj:2 content:@"宝马"]; 69 | Core1KeyValueObj *obj3= [Core1KeyValueObj obj:3 content:@"奔驰"]; 70 | Core1KeyValueObj *obj4= [Core1KeyValueObj obj:4 content:@"福特"]; 71 | 72 | //建立模型 73 | Core1PickerModel *pickerModel=[Core1PickerModel pickerModel:@[obj1,obj2,obj3,obj4]]; 74 | 75 | //建立pickerView 76 | Core1PickerView *pickerView=[Core1PickerView pickerView:pickerModel]; 77 | 78 | //添加 79 | [_tf2 add1PickerView:pickerView]; 80 | } 81 | 82 | 83 | 84 | /* 85 | * 日期选取 86 | */ 87 | -(void)datePicker{ 88 | 89 | //建立datePicker 90 | CoreDatePicker *datePicker=[CoreDatePicker datePicker:@"yyyy-MM-dd HH:mm:ss"]; 91 | 92 | [_tf3 addDatePickerView:datePicker]; 93 | } 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | /* 115 | * 值查看 116 | */ 117 | - (IBAction)see1:(id)sender { 118 | 119 | NSString *uiValue=_tf1.input1pickerView.selectedUIValue; 120 | NSString *realValue=_tf1.input1pickerView.selectedRealValue; 121 | 122 | NSLog(@"tf1:uiValue=%@,realValue=%@",uiValue,realValue); 123 | } 124 | 125 | 126 | - (IBAction)see2:(id)sender { 127 | 128 | NSString *uiValue=_tf2.input1pickerView.selectedUIValue; 129 | NSString *realValue=_tf2.input1pickerView.selectedRealValue; 130 | 131 | NSLog(@"tf2:uiValue=%@,realValue=%@",uiValue,realValue); 132 | 133 | } 134 | 135 | 136 | - (IBAction)see3:(id)sender { 137 | 138 | NSString *uiValue=_tf3.datePicker.selectedUIValue; 139 | NSString *timeStamp=_tf3.datePicker.selectedRealValue; 140 | 141 | NSLog(@"tf3:uiValue=%@,realValue=%@",uiValue,timeStamp); 142 | 143 | } 144 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | 159 | 160 | 161 | 162 | 163 | 164 | 165 | 166 | 167 | 168 | 169 | 170 | 171 | 172 | 173 | 174 | 175 | 176 | 177 | - (IBAction)closeKeyboard:(id)sender { 178 | [self.view endEditing:YES]; 179 | } 180 | 181 | 182 | 183 | 184 | @end 185 | -------------------------------------------------------------------------------- /CorePickerView/Base.lproj/LaunchScreen.xib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 20 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | -------------------------------------------------------------------------------- /CorePickerView.xcodeproj/xcuserdata/Charlin.xcuserdatad/xcschemes/CorePickerView.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 29 | 35 | 36 | 37 | 38 | 39 | 44 | 45 | 47 | 53 | 54 | 55 | 56 | 57 | 63 | 64 | 65 | 66 | 75 | 77 | 83 | 84 | 85 | 86 | 87 | 88 | 94 | 96 | 102 | 103 | 104 | 105 | 107 | 108 | 111 | 112 | 113 | -------------------------------------------------------------------------------- /CorePickerView/Base.lproj/Main.storyboard: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 50 | 51 | 52 | 53 | 54 | 55 | 64 | 65 | 66 | 67 | 68 | 69 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | -------------------------------------------------------------------------------- /CorePickerView.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- 1 | // !$*UTF8*$! 2 | { 3 | archiveVersion = 1; 4 | classes = { 5 | }; 6 | objectVersion = 46; 7 | objects = { 8 | 9 | /* Begin PBXBuildFile section */ 10 | 897883851AC2D71800142C10 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 897883841AC2D71800142C10 /* main.m */; }; 11 | 897883881AC2D71800142C10 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 897883871AC2D71800142C10 /* AppDelegate.m */; }; 12 | 8978838B1AC2D71800142C10 /* ViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 8978838A1AC2D71800142C10 /* ViewController.m */; }; 13 | 8978838E1AC2D71800142C10 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 8978838C1AC2D71800142C10 /* Main.storyboard */; }; 14 | 897883901AC2D71800142C10 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 8978838F1AC2D71800142C10 /* Images.xcassets */; }; 15 | 897883931AC2D71800142C10 /* LaunchScreen.xib in Resources */ = {isa = PBXBuildFile; fileRef = 897883911AC2D71800142C10 /* LaunchScreen.xib */; }; 16 | 8978839F1AC2D71800142C10 /* CorePickerViewTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 8978839E1AC2D71800142C10 /* CorePickerViewTests.m */; }; 17 | 897DF2BA1AC3007C003ABC96 /* Core1PickerModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 897DF2B11AC3007C003ABC96 /* Core1PickerModel.m */; }; 18 | 897DF2BB1AC3007C003ABC96 /* Core1KeyValueObj.m in Sources */ = {isa = PBXBuildFile; fileRef = 897DF2B41AC3007C003ABC96 /* Core1KeyValueObj.m */; }; 19 | 897DF2BC1AC3007C003ABC96 /* Core1PickerView.m in Sources */ = {isa = PBXBuildFile; fileRef = 897DF2B71AC3007C003ABC96 /* Core1PickerView.m */; }; 20 | 897DF2BD1AC3007C003ABC96 /* UITextField+PicerView.m in Sources */ = {isa = PBXBuildFile; fileRef = 897DF2B91AC3007C003ABC96 /* UITextField+PicerView.m */; }; 21 | 897DF2C51AC3048A003ABC96 /* CoreDatePicker.m in Sources */ = {isa = PBXBuildFile; fileRef = 897DF2C41AC3048A003ABC96 /* CoreDatePicker.m */; }; 22 | 897DF2CA1AC30846003ABC96 /* NSDate+PickerFormat.m in Sources */ = {isa = PBXBuildFile; fileRef = 897DF2C91AC30846003ABC96 /* NSDate+PickerFormat.m */; }; 23 | 897DF2CD1AC308C7003ABC96 /* NSString+PickerFormat.m in Sources */ = {isa = PBXBuildFile; fileRef = 897DF2CC1AC308C7003ABC96 /* NSString+PickerFormat.m */; }; 24 | 897DF2D21AC30D75003ABC96 /* 1.jpg in Resources */ = {isa = PBXBuildFile; fileRef = 897DF2CF1AC30D75003ABC96 /* 1.jpg */; }; 25 | 897DF2D31AC30D75003ABC96 /* 2.png in Resources */ = {isa = PBXBuildFile; fileRef = 897DF2D01AC30D75003ABC96 /* 2.png */; }; 26 | 897DF2D41AC30D75003ABC96 /* 3.jpg in Resources */ = {isa = PBXBuildFile; fileRef = 897DF2D11AC30D75003ABC96 /* 3.jpg */; }; 27 | 897DF2E01AC31429003ABC96 /* 1.png in Resources */ = {isa = PBXBuildFile; fileRef = 897DF2DD1AC31429003ABC96 /* 1.png */; }; 28 | 897DF2E11AC31429003ABC96 /* 2.png in Resources */ = {isa = PBXBuildFile; fileRef = 897DF2DE1AC31429003ABC96 /* 2.png */; }; 29 | 897DF2E21AC31429003ABC96 /* 3.png in Resources */ = {isa = PBXBuildFile; fileRef = 897DF2DF1AC31429003ABC96 /* 3.png */; }; 30 | /* End PBXBuildFile section */ 31 | 32 | /* Begin PBXContainerItemProxy section */ 33 | 897883991AC2D71800142C10 /* PBXContainerItemProxy */ = { 34 | isa = PBXContainerItemProxy; 35 | containerPortal = 897883771AC2D71800142C10 /* Project object */; 36 | proxyType = 1; 37 | remoteGlobalIDString = 8978837E1AC2D71800142C10; 38 | remoteInfo = CorePickerView; 39 | }; 40 | /* End PBXContainerItemProxy section */ 41 | 42 | /* Begin PBXFileReference section */ 43 | 8978837F1AC2D71800142C10 /* CorePickerView.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = CorePickerView.app; sourceTree = BUILT_PRODUCTS_DIR; }; 44 | 897883831AC2D71800142C10 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 45 | 897883841AC2D71800142C10 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; 46 | 897883861AC2D71800142C10 /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; }; 47 | 897883871AC2D71800142C10 /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; }; 48 | 897883891AC2D71800142C10 /* ViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ViewController.h; sourceTree = ""; }; 49 | 8978838A1AC2D71800142C10 /* ViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ViewController.m; sourceTree = ""; }; 50 | 8978838D1AC2D71800142C10 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; 51 | 8978838F1AC2D71800142C10 /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = ""; }; 52 | 897883921AC2D71800142C10 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/LaunchScreen.xib; sourceTree = ""; }; 53 | 897883981AC2D71800142C10 /* CorePickerViewTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = CorePickerViewTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 54 | 8978839D1AC2D71800142C10 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 55 | 8978839E1AC2D71800142C10 /* CorePickerViewTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = CorePickerViewTests.m; sourceTree = ""; }; 56 | 897DF2B01AC3007C003ABC96 /* Core1PickerModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Core1PickerModel.h; sourceTree = ""; }; 57 | 897DF2B11AC3007C003ABC96 /* Core1PickerModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Core1PickerModel.m; sourceTree = ""; }; 58 | 897DF2B31AC3007C003ABC96 /* Core1KeyValueObj.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Core1KeyValueObj.h; sourceTree = ""; }; 59 | 897DF2B41AC3007C003ABC96 /* Core1KeyValueObj.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Core1KeyValueObj.m; sourceTree = ""; }; 60 | 897DF2B61AC3007C003ABC96 /* Core1PickerView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Core1PickerView.h; sourceTree = ""; }; 61 | 897DF2B71AC3007C003ABC96 /* Core1PickerView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Core1PickerView.m; sourceTree = ""; }; 62 | 897DF2B81AC3007C003ABC96 /* UITextField+PicerView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UITextField+PicerView.h"; sourceTree = ""; }; 63 | 897DF2B91AC3007C003ABC96 /* UITextField+PicerView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UITextField+PicerView.m"; sourceTree = ""; }; 64 | 897DF2C31AC3048A003ABC96 /* CoreDatePicker.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CoreDatePicker.h; sourceTree = ""; }; 65 | 897DF2C41AC3048A003ABC96 /* CoreDatePicker.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CoreDatePicker.m; sourceTree = ""; }; 66 | 897DF2C71AC306BD003ABC96 /* CorePickerViewDefine.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CorePickerViewDefine.h; sourceTree = ""; }; 67 | 897DF2C81AC30846003ABC96 /* NSDate+PickerFormat.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSDate+PickerFormat.h"; sourceTree = ""; }; 68 | 897DF2C91AC30846003ABC96 /* NSDate+PickerFormat.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSDate+PickerFormat.m"; sourceTree = ""; }; 69 | 897DF2CB1AC308C7003ABC96 /* NSString+PickerFormat.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSString+PickerFormat.h"; sourceTree = ""; }; 70 | 897DF2CC1AC308C7003ABC96 /* NSString+PickerFormat.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSString+PickerFormat.m"; sourceTree = ""; }; 71 | 897DF2CF1AC30D75003ABC96 /* 1.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = 1.jpg; sourceTree = ""; }; 72 | 897DF2D01AC30D75003ABC96 /* 2.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = 2.png; sourceTree = ""; }; 73 | 897DF2D11AC30D75003ABC96 /* 3.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = 3.jpg; sourceTree = ""; }; 74 | 897DF2DD1AC31429003ABC96 /* 1.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = 1.png; sourceTree = ""; }; 75 | 897DF2DE1AC31429003ABC96 /* 2.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = 2.png; sourceTree = ""; }; 76 | 897DF2DF1AC31429003ABC96 /* 3.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = 3.png; sourceTree = ""; }; 77 | /* End PBXFileReference section */ 78 | 79 | /* Begin PBXFrameworksBuildPhase section */ 80 | 8978837C1AC2D71800142C10 /* Frameworks */ = { 81 | isa = PBXFrameworksBuildPhase; 82 | buildActionMask = 2147483647; 83 | files = ( 84 | ); 85 | runOnlyForDeploymentPostprocessing = 0; 86 | }; 87 | 897883951AC2D71800142C10 /* Frameworks */ = { 88 | isa = PBXFrameworksBuildPhase; 89 | buildActionMask = 2147483647; 90 | files = ( 91 | ); 92 | runOnlyForDeploymentPostprocessing = 0; 93 | }; 94 | /* End PBXFrameworksBuildPhase section */ 95 | 96 | /* Begin PBXGroup section */ 97 | 897883761AC2D71800142C10 = { 98 | isa = PBXGroup; 99 | children = ( 100 | 897883811AC2D71800142C10 /* CorePickerView */, 101 | 8978839B1AC2D71800142C10 /* CorePickerViewTests */, 102 | 897883801AC2D71800142C10 /* Products */, 103 | ); 104 | sourceTree = ""; 105 | }; 106 | 897883801AC2D71800142C10 /* Products */ = { 107 | isa = PBXGroup; 108 | children = ( 109 | 8978837F1AC2D71800142C10 /* CorePickerView.app */, 110 | 897883981AC2D71800142C10 /* CorePickerViewTests.xctest */, 111 | ); 112 | name = Products; 113 | sourceTree = ""; 114 | }; 115 | 897883811AC2D71800142C10 /* CorePickerView */ = { 116 | isa = PBXGroup; 117 | children = ( 118 | 897DF2AC1AC3007C003ABC96 /* CorePickerView */, 119 | 897883861AC2D71800142C10 /* AppDelegate.h */, 120 | 897883871AC2D71800142C10 /* AppDelegate.m */, 121 | 897883891AC2D71800142C10 /* ViewController.h */, 122 | 8978838A1AC2D71800142C10 /* ViewController.m */, 123 | 8978838C1AC2D71800142C10 /* Main.storyboard */, 124 | 8978838F1AC2D71800142C10 /* Images.xcassets */, 125 | 897883911AC2D71800142C10 /* LaunchScreen.xib */, 126 | 897883821AC2D71800142C10 /* Supporting Files */, 127 | ); 128 | path = CorePickerView; 129 | sourceTree = ""; 130 | }; 131 | 897883821AC2D71800142C10 /* Supporting Files */ = { 132 | isa = PBXGroup; 133 | children = ( 134 | 897DF2CE1AC30D75003ABC96 /* pic */, 135 | 897883831AC2D71800142C10 /* Info.plist */, 136 | 897883841AC2D71800142C10 /* main.m */, 137 | ); 138 | name = "Supporting Files"; 139 | sourceTree = ""; 140 | }; 141 | 8978839B1AC2D71800142C10 /* CorePickerViewTests */ = { 142 | isa = PBXGroup; 143 | children = ( 144 | 8978839E1AC2D71800142C10 /* CorePickerViewTests.m */, 145 | 8978839C1AC2D71800142C10 /* Supporting Files */, 146 | ); 147 | path = CorePickerViewTests; 148 | sourceTree = ""; 149 | }; 150 | 8978839C1AC2D71800142C10 /* Supporting Files */ = { 151 | isa = PBXGroup; 152 | children = ( 153 | 897DF2DC1AC31429003ABC96 /* pics */, 154 | 8978839D1AC2D71800142C10 /* Info.plist */, 155 | ); 156 | name = "Supporting Files"; 157 | sourceTree = ""; 158 | }; 159 | 897DF2AC1AC3007C003ABC96 /* CorePickerView */ = { 160 | isa = PBXGroup; 161 | children = ( 162 | 897DF2C61AC30698003ABC96 /* Common */, 163 | 897DF2AD1AC3007C003ABC96 /* DatePicker */, 164 | 897DF2AE1AC3007C003ABC96 /* One */, 165 | 897DF2B81AC3007C003ABC96 /* UITextField+PicerView.h */, 166 | 897DF2B91AC3007C003ABC96 /* UITextField+PicerView.m */, 167 | ); 168 | path = CorePickerView; 169 | sourceTree = ""; 170 | }; 171 | 897DF2AD1AC3007C003ABC96 /* DatePicker */ = { 172 | isa = PBXGroup; 173 | children = ( 174 | 897DF2C11AC3048A003ABC96 /* Category */, 175 | 897DF2C21AC3048A003ABC96 /* View */, 176 | ); 177 | path = DatePicker; 178 | sourceTree = ""; 179 | }; 180 | 897DF2AE1AC3007C003ABC96 /* One */ = { 181 | isa = PBXGroup; 182 | children = ( 183 | 897DF2AF1AC3007C003ABC96 /* Model */, 184 | 897DF2B51AC3007C003ABC96 /* View */, 185 | ); 186 | path = One; 187 | sourceTree = ""; 188 | }; 189 | 897DF2AF1AC3007C003ABC96 /* Model */ = { 190 | isa = PBXGroup; 191 | children = ( 192 | 897DF2B01AC3007C003ABC96 /* Core1PickerModel.h */, 193 | 897DF2B11AC3007C003ABC96 /* Core1PickerModel.m */, 194 | 897DF2B21AC3007C003ABC96 /* SubObj */, 195 | ); 196 | path = Model; 197 | sourceTree = ""; 198 | }; 199 | 897DF2B21AC3007C003ABC96 /* SubObj */ = { 200 | isa = PBXGroup; 201 | children = ( 202 | 897DF2B31AC3007C003ABC96 /* Core1KeyValueObj.h */, 203 | 897DF2B41AC3007C003ABC96 /* Core1KeyValueObj.m */, 204 | ); 205 | path = SubObj; 206 | sourceTree = ""; 207 | }; 208 | 897DF2B51AC3007C003ABC96 /* View */ = { 209 | isa = PBXGroup; 210 | children = ( 211 | 897DF2B61AC3007C003ABC96 /* Core1PickerView.h */, 212 | 897DF2B71AC3007C003ABC96 /* Core1PickerView.m */, 213 | ); 214 | path = View; 215 | sourceTree = ""; 216 | }; 217 | 897DF2C11AC3048A003ABC96 /* Category */ = { 218 | isa = PBXGroup; 219 | children = ( 220 | 897DF2C81AC30846003ABC96 /* NSDate+PickerFormat.h */, 221 | 897DF2C91AC30846003ABC96 /* NSDate+PickerFormat.m */, 222 | 897DF2CB1AC308C7003ABC96 /* NSString+PickerFormat.h */, 223 | 897DF2CC1AC308C7003ABC96 /* NSString+PickerFormat.m */, 224 | ); 225 | path = Category; 226 | sourceTree = ""; 227 | }; 228 | 897DF2C21AC3048A003ABC96 /* View */ = { 229 | isa = PBXGroup; 230 | children = ( 231 | 897DF2C31AC3048A003ABC96 /* CoreDatePicker.h */, 232 | 897DF2C41AC3048A003ABC96 /* CoreDatePicker.m */, 233 | ); 234 | path = View; 235 | sourceTree = ""; 236 | }; 237 | 897DF2C61AC30698003ABC96 /* Common */ = { 238 | isa = PBXGroup; 239 | children = ( 240 | 897DF2C71AC306BD003ABC96 /* CorePickerViewDefine.h */, 241 | ); 242 | path = Common; 243 | sourceTree = ""; 244 | }; 245 | 897DF2CE1AC30D75003ABC96 /* pic */ = { 246 | isa = PBXGroup; 247 | children = ( 248 | 897DF2CF1AC30D75003ABC96 /* 1.jpg */, 249 | 897DF2D01AC30D75003ABC96 /* 2.png */, 250 | 897DF2D11AC30D75003ABC96 /* 3.jpg */, 251 | ); 252 | path = pic; 253 | sourceTree = ""; 254 | }; 255 | 897DF2DC1AC31429003ABC96 /* pics */ = { 256 | isa = PBXGroup; 257 | children = ( 258 | 897DF2DD1AC31429003ABC96 /* 1.png */, 259 | 897DF2DE1AC31429003ABC96 /* 2.png */, 260 | 897DF2DF1AC31429003ABC96 /* 3.png */, 261 | ); 262 | path = pics; 263 | sourceTree = ""; 264 | }; 265 | /* End PBXGroup section */ 266 | 267 | /* Begin PBXNativeTarget section */ 268 | 8978837E1AC2D71800142C10 /* CorePickerView */ = { 269 | isa = PBXNativeTarget; 270 | buildConfigurationList = 897883A21AC2D71800142C10 /* Build configuration list for PBXNativeTarget "CorePickerView" */; 271 | buildPhases = ( 272 | 8978837B1AC2D71800142C10 /* Sources */, 273 | 8978837C1AC2D71800142C10 /* Frameworks */, 274 | 8978837D1AC2D71800142C10 /* Resources */, 275 | ); 276 | buildRules = ( 277 | ); 278 | dependencies = ( 279 | ); 280 | name = CorePickerView; 281 | productName = CorePickerView; 282 | productReference = 8978837F1AC2D71800142C10 /* CorePickerView.app */; 283 | productType = "com.apple.product-type.application"; 284 | }; 285 | 897883971AC2D71800142C10 /* CorePickerViewTests */ = { 286 | isa = PBXNativeTarget; 287 | buildConfigurationList = 897883A51AC2D71800142C10 /* Build configuration list for PBXNativeTarget "CorePickerViewTests" */; 288 | buildPhases = ( 289 | 897883941AC2D71800142C10 /* Sources */, 290 | 897883951AC2D71800142C10 /* Frameworks */, 291 | 897883961AC2D71800142C10 /* Resources */, 292 | ); 293 | buildRules = ( 294 | ); 295 | dependencies = ( 296 | 8978839A1AC2D71800142C10 /* PBXTargetDependency */, 297 | ); 298 | name = CorePickerViewTests; 299 | productName = CorePickerViewTests; 300 | productReference = 897883981AC2D71800142C10 /* CorePickerViewTests.xctest */; 301 | productType = "com.apple.product-type.bundle.unit-test"; 302 | }; 303 | /* End PBXNativeTarget section */ 304 | 305 | /* Begin PBXProject section */ 306 | 897883771AC2D71800142C10 /* Project object */ = { 307 | isa = PBXProject; 308 | attributes = { 309 | LastUpgradeCheck = 0620; 310 | ORGANIZATIONNAME = "冯成林"; 311 | TargetAttributes = { 312 | 8978837E1AC2D71800142C10 = { 313 | CreatedOnToolsVersion = 6.2; 314 | }; 315 | 897883971AC2D71800142C10 = { 316 | CreatedOnToolsVersion = 6.2; 317 | TestTargetID = 8978837E1AC2D71800142C10; 318 | }; 319 | }; 320 | }; 321 | buildConfigurationList = 8978837A1AC2D71800142C10 /* Build configuration list for PBXProject "CorePickerView" */; 322 | compatibilityVersion = "Xcode 3.2"; 323 | developmentRegion = English; 324 | hasScannedForEncodings = 0; 325 | knownRegions = ( 326 | en, 327 | Base, 328 | ); 329 | mainGroup = 897883761AC2D71800142C10; 330 | productRefGroup = 897883801AC2D71800142C10 /* Products */; 331 | projectDirPath = ""; 332 | projectRoot = ""; 333 | targets = ( 334 | 8978837E1AC2D71800142C10 /* CorePickerView */, 335 | 897883971AC2D71800142C10 /* CorePickerViewTests */, 336 | ); 337 | }; 338 | /* End PBXProject section */ 339 | 340 | /* Begin PBXResourcesBuildPhase section */ 341 | 8978837D1AC2D71800142C10 /* Resources */ = { 342 | isa = PBXResourcesBuildPhase; 343 | buildActionMask = 2147483647; 344 | files = ( 345 | 8978838E1AC2D71800142C10 /* Main.storyboard in Resources */, 346 | 897DF2D21AC30D75003ABC96 /* 1.jpg in Resources */, 347 | 897DF2D31AC30D75003ABC96 /* 2.png in Resources */, 348 | 897DF2D41AC30D75003ABC96 /* 3.jpg in Resources */, 349 | 897883931AC2D71800142C10 /* LaunchScreen.xib in Resources */, 350 | 897883901AC2D71800142C10 /* Images.xcassets in Resources */, 351 | ); 352 | runOnlyForDeploymentPostprocessing = 0; 353 | }; 354 | 897883961AC2D71800142C10 /* Resources */ = { 355 | isa = PBXResourcesBuildPhase; 356 | buildActionMask = 2147483647; 357 | files = ( 358 | 897DF2E21AC31429003ABC96 /* 3.png in Resources */, 359 | 897DF2E11AC31429003ABC96 /* 2.png in Resources */, 360 | 897DF2E01AC31429003ABC96 /* 1.png in Resources */, 361 | ); 362 | runOnlyForDeploymentPostprocessing = 0; 363 | }; 364 | /* End PBXResourcesBuildPhase section */ 365 | 366 | /* Begin PBXSourcesBuildPhase section */ 367 | 8978837B1AC2D71800142C10 /* Sources */ = { 368 | isa = PBXSourcesBuildPhase; 369 | buildActionMask = 2147483647; 370 | files = ( 371 | 897DF2C51AC3048A003ABC96 /* CoreDatePicker.m in Sources */, 372 | 8978838B1AC2D71800142C10 /* ViewController.m in Sources */, 373 | 897DF2BB1AC3007C003ABC96 /* Core1KeyValueObj.m in Sources */, 374 | 897883881AC2D71800142C10 /* AppDelegate.m in Sources */, 375 | 897DF2BD1AC3007C003ABC96 /* UITextField+PicerView.m in Sources */, 376 | 897DF2BC1AC3007C003ABC96 /* Core1PickerView.m in Sources */, 377 | 897DF2BA1AC3007C003ABC96 /* Core1PickerModel.m in Sources */, 378 | 897DF2CA1AC30846003ABC96 /* NSDate+PickerFormat.m in Sources */, 379 | 897DF2CD1AC308C7003ABC96 /* NSString+PickerFormat.m in Sources */, 380 | 897883851AC2D71800142C10 /* main.m in Sources */, 381 | ); 382 | runOnlyForDeploymentPostprocessing = 0; 383 | }; 384 | 897883941AC2D71800142C10 /* Sources */ = { 385 | isa = PBXSourcesBuildPhase; 386 | buildActionMask = 2147483647; 387 | files = ( 388 | 8978839F1AC2D71800142C10 /* CorePickerViewTests.m in Sources */, 389 | ); 390 | runOnlyForDeploymentPostprocessing = 0; 391 | }; 392 | /* End PBXSourcesBuildPhase section */ 393 | 394 | /* Begin PBXTargetDependency section */ 395 | 8978839A1AC2D71800142C10 /* PBXTargetDependency */ = { 396 | isa = PBXTargetDependency; 397 | target = 8978837E1AC2D71800142C10 /* CorePickerView */; 398 | targetProxy = 897883991AC2D71800142C10 /* PBXContainerItemProxy */; 399 | }; 400 | /* End PBXTargetDependency section */ 401 | 402 | /* Begin PBXVariantGroup section */ 403 | 8978838C1AC2D71800142C10 /* Main.storyboard */ = { 404 | isa = PBXVariantGroup; 405 | children = ( 406 | 8978838D1AC2D71800142C10 /* Base */, 407 | ); 408 | name = Main.storyboard; 409 | sourceTree = ""; 410 | }; 411 | 897883911AC2D71800142C10 /* LaunchScreen.xib */ = { 412 | isa = PBXVariantGroup; 413 | children = ( 414 | 897883921AC2D71800142C10 /* Base */, 415 | ); 416 | name = LaunchScreen.xib; 417 | sourceTree = ""; 418 | }; 419 | /* End PBXVariantGroup section */ 420 | 421 | /* Begin XCBuildConfiguration section */ 422 | 897883A01AC2D71800142C10 /* Debug */ = { 423 | isa = XCBuildConfiguration; 424 | buildSettings = { 425 | ALWAYS_SEARCH_USER_PATHS = NO; 426 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; 427 | CLANG_CXX_LIBRARY = "libc++"; 428 | CLANG_ENABLE_MODULES = YES; 429 | CLANG_ENABLE_OBJC_ARC = YES; 430 | CLANG_WARN_BOOL_CONVERSION = YES; 431 | CLANG_WARN_CONSTANT_CONVERSION = YES; 432 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 433 | CLANG_WARN_EMPTY_BODY = YES; 434 | CLANG_WARN_ENUM_CONVERSION = YES; 435 | CLANG_WARN_INT_CONVERSION = YES; 436 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 437 | CLANG_WARN_UNREACHABLE_CODE = YES; 438 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 439 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 440 | COPY_PHASE_STRIP = NO; 441 | ENABLE_STRICT_OBJC_MSGSEND = YES; 442 | GCC_C_LANGUAGE_STANDARD = gnu99; 443 | GCC_DYNAMIC_NO_PIC = NO; 444 | GCC_OPTIMIZATION_LEVEL = 0; 445 | GCC_PREPROCESSOR_DEFINITIONS = ( 446 | "DEBUG=1", 447 | "$(inherited)", 448 | ); 449 | GCC_SYMBOLS_PRIVATE_EXTERN = NO; 450 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 451 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 452 | GCC_WARN_UNDECLARED_SELECTOR = YES; 453 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 454 | GCC_WARN_UNUSED_FUNCTION = YES; 455 | GCC_WARN_UNUSED_VARIABLE = YES; 456 | IPHONEOS_DEPLOYMENT_TARGET = 8.2; 457 | MTL_ENABLE_DEBUG_INFO = YES; 458 | ONLY_ACTIVE_ARCH = YES; 459 | SDKROOT = iphoneos; 460 | }; 461 | name = Debug; 462 | }; 463 | 897883A11AC2D71800142C10 /* Release */ = { 464 | isa = XCBuildConfiguration; 465 | buildSettings = { 466 | ALWAYS_SEARCH_USER_PATHS = NO; 467 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; 468 | CLANG_CXX_LIBRARY = "libc++"; 469 | CLANG_ENABLE_MODULES = YES; 470 | CLANG_ENABLE_OBJC_ARC = YES; 471 | CLANG_WARN_BOOL_CONVERSION = YES; 472 | CLANG_WARN_CONSTANT_CONVERSION = YES; 473 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 474 | CLANG_WARN_EMPTY_BODY = YES; 475 | CLANG_WARN_ENUM_CONVERSION = YES; 476 | CLANG_WARN_INT_CONVERSION = YES; 477 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 478 | CLANG_WARN_UNREACHABLE_CODE = YES; 479 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 480 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 481 | COPY_PHASE_STRIP = NO; 482 | ENABLE_NS_ASSERTIONS = NO; 483 | ENABLE_STRICT_OBJC_MSGSEND = YES; 484 | GCC_C_LANGUAGE_STANDARD = gnu99; 485 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 486 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 487 | GCC_WARN_UNDECLARED_SELECTOR = YES; 488 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 489 | GCC_WARN_UNUSED_FUNCTION = YES; 490 | GCC_WARN_UNUSED_VARIABLE = YES; 491 | IPHONEOS_DEPLOYMENT_TARGET = 8.2; 492 | MTL_ENABLE_DEBUG_INFO = NO; 493 | SDKROOT = iphoneos; 494 | VALIDATE_PRODUCT = YES; 495 | }; 496 | name = Release; 497 | }; 498 | 897883A31AC2D71800142C10 /* Debug */ = { 499 | isa = XCBuildConfiguration; 500 | buildSettings = { 501 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 502 | INFOPLIST_FILE = CorePickerView/Info.plist; 503 | IPHONEOS_DEPLOYMENT_TARGET = 7.0; 504 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; 505 | PRODUCT_NAME = "$(TARGET_NAME)"; 506 | }; 507 | name = Debug; 508 | }; 509 | 897883A41AC2D71800142C10 /* Release */ = { 510 | isa = XCBuildConfiguration; 511 | buildSettings = { 512 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 513 | INFOPLIST_FILE = CorePickerView/Info.plist; 514 | IPHONEOS_DEPLOYMENT_TARGET = 7.0; 515 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; 516 | PRODUCT_NAME = "$(TARGET_NAME)"; 517 | }; 518 | name = Release; 519 | }; 520 | 897883A61AC2D71800142C10 /* Debug */ = { 521 | isa = XCBuildConfiguration; 522 | buildSettings = { 523 | BUNDLE_LOADER = "$(TEST_HOST)"; 524 | FRAMEWORK_SEARCH_PATHS = ( 525 | "$(SDKROOT)/Developer/Library/Frameworks", 526 | "$(inherited)", 527 | ); 528 | GCC_PREPROCESSOR_DEFINITIONS = ( 529 | "DEBUG=1", 530 | "$(inherited)", 531 | ); 532 | INFOPLIST_FILE = CorePickerViewTests/Info.plist; 533 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; 534 | PRODUCT_NAME = "$(TARGET_NAME)"; 535 | TEST_HOST = "$(BUILT_PRODUCTS_DIR)/CorePickerView.app/CorePickerView"; 536 | }; 537 | name = Debug; 538 | }; 539 | 897883A71AC2D71800142C10 /* Release */ = { 540 | isa = XCBuildConfiguration; 541 | buildSettings = { 542 | BUNDLE_LOADER = "$(TEST_HOST)"; 543 | FRAMEWORK_SEARCH_PATHS = ( 544 | "$(SDKROOT)/Developer/Library/Frameworks", 545 | "$(inherited)", 546 | ); 547 | INFOPLIST_FILE = CorePickerViewTests/Info.plist; 548 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; 549 | PRODUCT_NAME = "$(TARGET_NAME)"; 550 | TEST_HOST = "$(BUILT_PRODUCTS_DIR)/CorePickerView.app/CorePickerView"; 551 | }; 552 | name = Release; 553 | }; 554 | /* End XCBuildConfiguration section */ 555 | 556 | /* Begin XCConfigurationList section */ 557 | 8978837A1AC2D71800142C10 /* Build configuration list for PBXProject "CorePickerView" */ = { 558 | isa = XCConfigurationList; 559 | buildConfigurations = ( 560 | 897883A01AC2D71800142C10 /* Debug */, 561 | 897883A11AC2D71800142C10 /* Release */, 562 | ); 563 | defaultConfigurationIsVisible = 0; 564 | defaultConfigurationName = Release; 565 | }; 566 | 897883A21AC2D71800142C10 /* Build configuration list for PBXNativeTarget "CorePickerView" */ = { 567 | isa = XCConfigurationList; 568 | buildConfigurations = ( 569 | 897883A31AC2D71800142C10 /* Debug */, 570 | 897883A41AC2D71800142C10 /* Release */, 571 | ); 572 | defaultConfigurationIsVisible = 0; 573 | defaultConfigurationName = Release; 574 | }; 575 | 897883A51AC2D71800142C10 /* Build configuration list for PBXNativeTarget "CorePickerViewTests" */ = { 576 | isa = XCConfigurationList; 577 | buildConfigurations = ( 578 | 897883A61AC2D71800142C10 /* Debug */, 579 | 897883A71AC2D71800142C10 /* Release */, 580 | ); 581 | defaultConfigurationIsVisible = 0; 582 | defaultConfigurationName = Release; 583 | }; 584 | /* End XCConfigurationList section */ 585 | }; 586 | rootObject = 897883771AC2D71800142C10 /* Project object */; 587 | } 588 | --------------------------------------------------------------------------------