# ZJPickerView **Repository Path**: CzyCavan/ZJPickerView ## Basic Information - **Project Name**: ZJPickerView - **Description**: No description available - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-02-20 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # ZJPickerView [![Platform](https://img.shields.io/badge/platform-iOS-red.svg)](https://developer.apple.com/iphone/index.action) [![Language](http://img.shields.io/badge/language-OC-yellow.svg?style=flat )](https://en.wikipedia.org/wiki/Objective-C) [![License](https://img.shields.io/badge/license-MIT-blue.svg)](http://mit-license.org) [![CocoaPods Compatible](https://img.shields.io/cocoapods/v/ZJPickerView.svg)](https://img.shields.io/cocoapods/v/ZJPickerView.svg) [![Weibo](https://img.shields.io/badge/%E5%BE%AE%E5%8D%9A-%40Abnerzj-f65a14.svg?logo=data%3aimage%2fpng%3bbase64%2ciVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAE7ElEQVR4Ae1Wf2iUdRh%252ftuk2CVk4WgRm273v%252fXidtpEUiekOloRrQkama5UR9EcxVKIiCGmjQIIhze1uZf4wxWmGlEhkwWAohDJNppVxI9zde3rdus77Me92t93z9HyP965733uXY1RQ%252bMGH9%252fv4ft%252fv5%252fN9ns%252f3e4M7%252bN8h1gfVHPs5zkddcImfgzEX7Iz0wUPwbyDeB69G%252bwBzweSkjTMcJxO7YTH8k0i44H4m%252bjrigi%252f4eYQFnOXnZIGgGzd3QwPMBeR0zvNbHDZ%252fna1BXbx4AcwStz6G%252b7gd%252faIKoiLcFjXeDzUwW9yoUx5QJeVDVXYEOEiLwJismPaVdsECJtvKpO%252fH3bCRDkBltj0ueI0FIAdxfAq3g9glE%252b30SfYkB4oQ5NqYw3ZiBiNuMXjgp4gbLJpHjmjvpsI9sARmwpjVqjDJFT2hXoBXsn8HJghuu%252bveyAdle6O9cJCJQhrhBToOZVwFJW9SF3SAGbx1ylomuGkkLM4dR4HxY319Of9%252fk9di3%252baX7O%252f56%252bXtwceWZHcc3QUyk01kq9ELq4ighMdjImej7gUjfJLyFC%252bW5KDbhuQ4wc89qmy%252fafI%252b6bNa1wCD23BGa8ULWn5O88Hn%252bp1bbM3iw6IdzzHnihwGBhP%252fnN3xbng8m7vAk21Bb4ERVYti9cn23%252bdOaGrSg5qAFi7328ID4qbkfJoDefwm5HrIHwzPtKB%252fWSMGNz2H4R2dbJx%252biu07wCZyY%252fidHfjr0xtJdSybySMvgQEsopzJzzO5GumFOhBQrcpbZj0OPrOJbp08RZl4nP4K0%252bPjFP1oD11%252feKXRIwN%252b2bGySEQnlHLMyybXahvvZrXhgh3wQo%252firVNfIWYySAzUkEqlMBaLUTqdRg2699OhEI5vedlYQfE8GZDle8AMqtW%252btfCDG85mSo%252bNYQFoaGgIW1tbsaqqCsvKyqi6uhrb29txdHQ0LyCPyUlRObOWXLxWW1sJRvCEofzk%252bgZMXb2qW7Czs5NKSkqQp%252baCcuNFixbhyMiIbj4xUpevCGKTi8v2ipmAeK5n4Xe7qBDHjh0TZLooLS2l8vLyfO50OknwGnF9VVORp9gP%252b8GIQoXJM2d1JW1sbMzueOHChbh%252b%252fXqsra3Frq4u6u7uzlekoqKC4vF4kScCTzxZfCpku9tMQDA3ITVyOb9AIpEQiyOTk8fjQYFIJII1NTXEPsgLqKyspImJCZ2ATDSKqrK8uAWy%252fVkTAfZDuQnxo5%252flBQinC7OtXr06m%252bdEcd%252fzHhDR3Nxc5IGou9%252fMhJ5RWa4oFmBxLOdJKQ4KrGsl4eIcOjo6aP78%252beR2u2lwcJBaWlp0fhC7Hx4epkJMDl8gdemDxv6nfFZlDcwEr%252fTnUQy9%252fgbxgUeGOPPIJtPtWCMXrcDTp0%252frPJP45lv0N6ww3gMpvpI3QxHMRWQrEdy4GVNXfkCBqakpGhgYwLa2NmxqasINGzZQT08PhsNhFCD%252bl%252faMYmjrduQb1XiVB7xWZS3MFmqd7RFe4FxWuW0pjre%252fiPFDh0mIybABMZnETCJB07%252bFcPLCRYx9sg%252bDbc8TzzX2PO2VHHt0t99sQQClqmRbp8rKl7xYIt9HqyJ%252blIgvK5GbBXKofNa7fbIswd%252bBXyyWKtWitHhlR5cq2Y%252bLP8H41Fzi3%252flLquT4nvNBzvdyvo13vILFl8F%252fDXfwB6rTSvg9dQ5kAAAAAElFTkSuQmCC&style=flat&logoWidth=14&label=)](http://weibo.com/ioszj) [![Jianshu](https://img.shields.io/badge/%E7%AE%80%E4%B9%A6-%40Abnerzj-e55844.svg?logo=data%3aimage%2fpng%3bbase64%2ciVBORw0KGgoAAAANSUhEUgAAAHAAAAA0CAMAAABl90wDAAAAjVBMVEUAAADrcFvqb1rrcVztclzuc17tc13rcFrrb1rtcl3qcFvrcVrrcFvscFvrcFrud2Tsb1rtcVvrcFzqb1vscFv0eWPrcFvscFvrb1rscFzrcFzscV3%2fiX3rb1rtcVzrb1rrcFrrcFv%2ffmLrcFrsc1%2frcFrrcFrrcFvwdF3scFvrcFvzdWPrcFrscFvqb1raTo%2bjAAAALnRSTlMA9MRXKS4bym480mbOhIIOhVOL7J4X2WvwWU02BKtD38CRCaMm%2bea2IHlzE5ZgwvLvugAAAo5JREFUeAHt1%2bu%2bcloUx%2fG%2fg2TRkkKWSEnnGvd%2feXsORYfUw9L2Yu%2fn%2b7Y%2b85eGOQsuPBJWRzwySQgc1CYT6%2bFPTGI6Hm2IfbcLehN2qFjYxAN7lV95r0WwXH2DG9mK2Ghwow9gTywZ3Zk2Dm4DEva4iumZDBwCqhA2DqJPwipDYUYVYmBBVbTmwSi5%2b1K1gCqYOFGVddo8CJOYg1y2JjYwzZiExMyFCImt%2b5PJjthowswtbm21exaxmfbgkDe%2bwKYJsT4A7ebjRfsVCYEGwcqDqBBTLc6wGL89XBHbgfnlrtvOiY2nYLu8neLZqGZQLW7EMTFJQe5IQgJhSSzJkNNe3p77mkHoxDIQ%2b9JwdiJmF0HXxlkk5VPGs61UMzgk9s3BoP%2bjC5sUUGVhhHMwCVFaWpYla6iQqncsYppXii%2fBkJgM8ncHpD4JLkpcOEUotTja3EvwILEdDLCwmJGhXEyUatlvg1XvSyJ%2b%2bb3%2bh4LOZbVBV8Fofb5Es6sgFsQUT5de%2bmzQIObiNeNjwelMML5837dmnQT160GOroPedxXz3wuqVMV6FXR%2bCkrBJ7YzSzKxhZKLWgZ9ashuGZx%2fKOgOS%2frb4PJDwSlKi7dBzZceUU560j7Y8NlC%2fn8H3UFJ7yD47G%2bwdXA5LHUzQwOlxX8%2beCRB7nDjWyTEHwj6xNLqoKJeGC4xs33QIDau94u%2ftlsEQ0U4jSRiy3rBEC2COl1Jap2gP0ObYExXJp6C2fieH%2fdTXMx%2bFRxRYf3T8H%2fpnpjTMOi589zRtFE3GKW2ffCcgNi2frBajeCermJ0EHSoJG0%2fFtzgpSkVghlqBYPoT0FpnuGlyKLc%2bNhDjWDgx1O8pak23lM1wUMdvRRv%2fQNommOfb6EQtgAAAABJRU5ErkJggg%3d%3d&style=flat&logoWidth=24&label=)](https://www.jianshu.com/p/f777419461c5) ---
--- # Getting Started【开始使用】 ## Features【能做什么】 - 一行代码即可集成。 - 支持**任意列**数据联动展示。 - 支持**字符串**、**整型**、**浮点型**等数据类型。 - 支持自定义界面中子控件的**文字颜色**、**文字字体**。 - 支持自定义PickerView的属性:PickerView的高度、PickerView一行的高度、选中内容和未选中内容**文字属性**、选中行分割线背景颜色。 - 支持自定义**背景透明度**和是否接收背景触摸事件。 - 支持选择完内容回调,每一列选中的值用逗号分隔开。 - 支持已选择内容是否展示在标题上及展示时是否默认滚动到已选择内容那一行。 ## Installation【安装】 ### From CocoaPods【使用CocoaPods】 ```ruby pod 'ZJPickerView' ``` ### Manually【手动导入】 - Drag all source files under floder `ZJPickerView` to your project.【将`ZJPickerView`文件夹中的所有源代码拽入项目中】 - Import the main header file:`#import "ZJPickerView.h"`【导入主头文件:`#import "ZJPickerView.h"`】 ```objc ZJPickerView.h ZJPickerView.m ``` # Examples【示例】 ## Direct Use【直接使用】 ```objc [ZJPickerView zj_showWithDataList:@[@"IT", @"销售", @"自媒体", @"游戏主播", @"产品策划"] propertyDict:nil completion:^(NSString *selectContent) { NSLog(@"ZJPickerView log tip:---> selectContent:%@", selectContent); }]; ``` ## User-defined properties【自定义想要的PickerView】 ```objc // 支持的属性列表 // content: NSString type extern NSString * _Nonnull const ZJPickerViewPropertyCanceBtnTitleKey; // cance button Title(取消按钮) extern NSString * _Nonnull const ZJPickerViewPropertySureBtnTitleKey; // sure button Title(确定按钮) extern NSString * _Nonnull const ZJPickerViewPropertyTipLabelTextKey; // tipLabel text(选择提示标签,tips: When multi component, recommended the selected content be separated by commas. 重要提示:多列时建议已选择的内容用英文逗号隔开,参考`ZJPickerViewPropertyIsDividedSelectContentKey`这个key) extern NSString * _Nonnull const ZJPickerViewPropertyDividedSymbolKey; // divided symbol, default commas (选中内容的分隔符,默认英文逗号) // color: UIColor type extern NSString * _Nonnull const ZJPickerViewPropertyCanceBtnTitleColorKey; // cance button Title color(取消按钮文字颜色) extern NSString * _Nonnull const ZJPickerViewPropertySureBtnTitleColorKey; // sure button Title color(确定按钮文字颜色) extern NSString * _Nonnull const ZJPickerViewPropertyTipLabelTextColorKey; // tipLabel text color(选择提示标签文字颜色) extern NSString * _Nonnull const ZJPickerViewPropertyLineViewBackgroundColorKey; // lineView backgroundColor(顶部工具条分割线背景颜色) // font: UIFont type extern NSString * _Nonnull const ZJPickerViewPropertyCanceBtnTitleFontKey; // cance button label font, default 17.0f(取消按钮字体大小) extern NSString * _Nonnull const ZJPickerViewPropertySureBtnTitleFontKey; // sure button label font, default 17.0f(确定按钮字体大小) extern NSString * _Nonnull const ZJPickerViewPropertyTipLabelTextFontKey; // tipLabel font, default 17.0f(选择提示标题字体大小) // pickerView: // CGFloat type extern NSString * _Nonnull const ZJPickerViewPropertyPickerViewHeightKey; // pickerView height, default 224 pt(pickerView高度) extern NSString * _Nonnull const ZJPickerViewPropertyOneComponentRowHeightKey; // one component row height, default 32 pt(pickerView一行的高度) // NSDictionary type extern NSString * _Nonnull const ZJPickerViewPropertySelectRowTitleAttrKey; // select row titlt attribute(pickerView当前选中的文字颜色) extern NSString * _Nonnull const ZJPickerViewPropertyUnSelectRowTitleAttrKey; // unSelect row titlt attribute(pickerView当前没有选中的文字颜色) // UIColor type extern NSString * _Nonnull const ZJPickerViewPropertySelectRowLineBackgroundColorKey; // select row top and bottom line backgroundColor(选中行顶部和底部分割线背景颜色) // other: // BOOL type extern NSString * _Nonnull const ZJPickerViewPropertyIsTouchBackgroundHideKey; // touch background is hide, default NO(是否点击背景隐藏) extern NSString * _Nonnull const ZJPickerViewPropertyIsShowTipLabelKey; // is show tipLabel, default NO. note: if the value of this key`ZJPickerViewPropertyIsShowSelectContentKey` is YES, the value of ZJPickerViewPropertyIsShowTipLabelKey is ignored.(是否显示提示标签。注意,如果这个key`ZJPickerViewPropertyIsShowSelectContentKey`的值为YES,忽略ZJPickerViewPropertyIsShowTipLabelKey的值) extern NSString * _Nonnull const ZJPickerViewPropertyIsShowSelectContentKey; // scroll component is update and show select content in tipLabel, default NO(选择内容后是否更新选择提示标签) extern NSString * _Nonnull const ZJPickerViewPropertyIsScrollToSelectedRowKey; // when pickerView will show scroll to selected row, default NO. note:`ZJPickerViewPropertyTipLabelTextKey` Must pass by value(将要显示时是否滚动到已选择内容那一行,注意,选择提示标签tipLabel必须传内容,比如之前选择了`北京`,此时就需要传入`北京`) extern NSString * _Nonnull const ZJPickerViewPropertyIsDividedSelectContentKey; // the select content is divided by comma symbol when pickerView before show, use string matching for every component if value is nil, default NO.(pickerView显示前,已选择的内容是否已用逗号隔开,默认用选择的内容字符串去匹配每一列选中的内容,如果每一列选中的内容存在相似,会造成滚动到选择的那一行出现问题。比如,总共有两列,选择的内容是:`8.2,8.2`,第一列选择的内容`8.2`在索引2的位置,第二列选择的内容`8.2`在索引4的位置,这个时候如果用默认的匹配规则,则每一列在滚动到已选择那一行时,都只会滚动到索引为2之处) extern NSString * _Nonnull const ZJPickerViewPropertyIsAnimationShowKey; // show pickerView is need Animation, default YES(显示pickerView时是否带动画效果) // CGFloat type extern NSString * _Nonnull const ZJPickerViewPropertyBackgroundAlphaKey; // background alpha, default 0.5(0.0~1.0)(背景视图透明度) ``` ```objc // 使用 // 1.Custom propery(自定义属性,根据需要添加想要的属性。PS:如果在多个地方使用到自定义弹框,建议把propertyDict定义为一个宏或全局变量) NSDictionary *propertyDict = @{ZJPickerViewPropertyCanceBtnTitleKey : @"取消", ZJPickerViewPropertyCanceBtnTitleKey : @"取消", ZJPickerViewPropertyTipLabelTextKey : @"提示内容", ZJPickerViewPropertyCanceBtnTitleColorKey : [UIColor zj_colorWithHexString:@"#A9A9A9"], ZJPickerViewPropertySureBtnTitleColorKey : [UIColor zj_colorWithHexString:@"#FF6347"], ZJPickerViewPropertyTipLabelTextColorKey : [UIColor zj_colorWithHexString:@"#231F20"], ZJPickerViewPropertyLineViewBackgroundColorKey : [UIColor zj_colorWithHexString:@"#dedede"], ZJPickerViewPropertyCanceBtnTitleFontKey : [UIFont systemFontOfSize:17.0f], ZJPickerViewPropertySureBtnTitleFontKey : [UIFont systemFontOfSize:17.0f], ZJPickerViewPropertyTipLabelTextFontKey : [UIFont systemFontOfSize:17.0f], ZJPickerViewPropertyPickerViewHeightKey : @300.0f, ZJPickerViewPropertyOneComponentRowHeightKey : @40.0f, ZJPickerViewPropertySelectRowTitleAttrKey : @{NSForegroundColorAttributeName : [UIColor zj_colorWithHexString:@"#FF6347"], NSFontAttributeName : [UIFont systemFontOfSize:20.0f]}, ZJPickerViewPropertyUnSelectRowTitleAttrKey : @{NSForegroundColorAttributeName : [UIColor zj_colorWithHexString:@"#A9A9A9"], NSFontAttributeName : [UIFont systemFontOfSize:20.0f]}, ZJPickerViewPropertySelectRowLineBackgroundColorKey : [UIColor zj_colorWithHexString:@"#dedede"], ZJPickerViewPropertyIsTouchBackgroundHideKey : @YES, ZJPickerViewPropertyIsShowTipLabelKey : @YES, ZJPickerViewPropertyIsShowSelectContentKey : @YES, ZJPickerViewPropertyIsScrollToSelectedRowKey: @YES, ZJPickerViewPropertyIsDividedSelectContentKey: @YES, ZJPickerViewPropertyIsAnimationShowKey : @YES}; // 2.Show(显示) __weak typeof(_selectContentLabel) weak_selectContentLabel = _selectContentLabel; [ZJPickerView zj_showWithDataList:dataList propertyDict:propertyDict completion:^(NSString *selectContent) { NSLog(@"ZJPickerView log tip:---> selectContent:%@", selectContent); }]; ``` ## 五、结语 * 如果在使用过程中遇到BUG,请Issues我,谢谢。 * 如果你想为ZJPickerView输出代码,请拼命Pull Requests我。 * 联系我😯 :[简书](http://www.jianshu.com/u/f00ad5c62f05) [微博](http://weibo.com/ioszj)