- 浏览: 580555 次
- 性别:
- 来自: 广州
文章分类
最新评论
-
JYY282:
[i][/i]
Ecshop与Shopex的比较 -
qq247890212:
我也遇见这问题了,真诡异。重新下载个猫换了就好了。 太浪费时间 ...
诡异:ClassNotFoundException: org.springframework.web.filter.CharacterEncoding
From: http://www.cocoachina.com/iphonedev/toolthain/2011/1205/3663.html
本人由论坛会员beanwolf分享
这个控件并不是对iOS自带的UIPickerView贴图,而是重新实现,我一周多的成果,期间走了不少弯路。哈!
此控件开发的原因:
最近公司有个需求,需要做一个农历的日期滚轮选择器,一开始想用iOS自带的UIPickerView,但是设计人员要求的比较高,必须实现她要求的样式,也就是上图中大家看到的样式。但是UIPickerView根本没有提供可以定制样式(也就是更换皮肤)的接口。首先我在论坛上找到了帖子,按照这位兄台所述,确实可以在一定程度上修改UIPickerView的图片,我之所以说一定程度上,有以下几个原因:
(1.)他是用覆盖原有的UIPickerView上的各个子视图上图片的方法做的,那么你提供新的图片就必须与原图片严丝合缝。这也说明,即便是图片换了,样式也是不能换的,譬如:分割线的粗细、上下左右的边框的大小等,也就是不能完全DIY,不能满足我的需求。
(2.)由于覆盖UIPickerView上的各个子视图上图片的做法不是苹果官方给出的,一旦以后某个版本的UIPickerView实现策略改变,例如:3号子视图不再是滚轮的背景图片,你的做法就挂了。
于是我就实现了上图中的滚轮选择器,它与UIPickerView的区别是:
(1.)皮肤图片提供了方法可以做替换的。
(2.)可以选择滚轮上的数据是否循环滚动。
(3.)可以指定选择条的位置。
为了代码的复用,也就是所谓的OOP,我按照以下的方式实现:
(1.)pickerview目录:这个目录中的IDJPickerView.h是滚轮选择器视图,没有任何和与数据相关的东西,也就是你可以在IDJPickerView上显示任何数据。IDJPickerView通过委托获取需要显示的数据。这个目录下的IDJScrollComponent.h实现了UIScrollView上的内容可以反复循环滚动的功能。
(2.)datepicker
目录:IDJDatePickerView.h实现了IDJPickerView里的协议,并把IDJPickerView做为自己的一个私有成员,实现
了一个可以根据type字段显示公历、农历的日期选择器,IDJDatePickerView.m里的农历算法用的是
solar_chinese_calendar目录中的C++算法,因此农历的相关数据类使用了
C++混编的代码。其实iOS自己支持农历的,但是存在BUG,具体的原因大家可以看我的IDJChineseCalendar.mm的源码,里面的注释
比较详细的。我在这里也使用了一层封装,也就是IDJDatePickerView.m本身也不提供数据,而是通过IDJCalendar.h、
IDJChineseCalendar.h、IDJCalendarUtil.h来提供,这样既实现了数据与视图的分离(因为农历算法太复杂了,直接写在
IDJDatePickerView.m里会使得代码看起来可读性太差了),而且把C++的调用封装在了数据层,使得
IDJDatePickerView.m的视图层代码不会出现C++的API。
(3.)timepicker目录:这个目录纯粹是一个Demo,展示了一个不循环滚动、显示行数与选中条位置不对称的选择器,没有什么实际的含义。
一开始我是纯粹写农历的选择器,代码都是耦合在一起的,后来逐个拆开的,这样代码就可以复用了,不仅仅是农历选择器,而是可以承载任何数据。
原文链接:http://www.cocoachina.com/bbs/read.php?tid=85374
源码:
- IDJDatePickerView.zip (110.8 KB)
- 下载次数: 0
发表评论
-
Objective-C 与 C++ 的异同
2013-04-02 12:03 1396http://www.cnblogs.com/y041039 ... -
Cocos2D-X是全球知名的开源跨平台手机游戏引擎
2013-01-22 10:05 2750http://www.oschina.net/p/cocos ... -
iOS Keyboard 键盘高度变化 自适应
2013-01-15 15:43 3249[[NSNotificationCenter default ... -
iOS使用自定义字体
2012-11-27 12:11 12140From: http://blog.csdn.net/csy1 ... -
4 款类似 Facebook/Path 切换效果的 iOS 组件
2012-11-27 12:03 2183From: http://blog.csdn.net/lia ... -
Path 2.0的UI界面设计详细介绍
2012-11-27 11:56 1463如Path的创始人Dave Morin ... -
史上最全的App Store邮箱列表
2012-11-27 11:51 1269From: http://roybaby.blog.51cto ... -
iOS从info.plist 获取项目的名称及版本号
2012-11-16 10:54 1664From: http://blog.sina.com.cn/s ... -
MapKit annotation drag and drop with callout info update
2012-10-13 10:38 2403http://hollowout.blogspot ... -
NSArray 或NSDictionary 调用writeToFile方法失败原因
2012-08-31 10:03 4465NSArray 或NSDictionary 调用writeTo ... -
如何让IOS应用从容地崩溃
2012-08-30 15:25 1615From: http://www.cocoachina.com ... -
iOS中判断设备系统版本
2012-08-29 17:17 31710在iOS开发中,经常要考虑系统的向下兼容,如果使用 ... -
iOS 汉字转拼音
2012-08-21 16:42 1463From: http://www.cnblogs.com/v2 ... -
iOS模拟器截图工具
2012-08-17 16:35 1654From: http://magicalboy.com/ios ... -
XCode下的iOS单元测试
2012-08-10 17:47 1162From: http://mobile.51cto.com/ ... -
AFNetworking
2012-08-08 10:54 4647AFNetworking on github: https:/ ... -
Wrapping Conventions
2012-08-01 15:54 822Wrapping Conventions ... -
Core Animation如何使显式动画结束时的值直接作用Layer
2012-08-01 14:51 3793(1)使用隐式动画会直接改变layer的属性值,如: ima ... -
How To Debug Memory Leaks with XCode and Instruments Tutoria
2012-07-31 16:30 1053From: http://www.raywenderlich. ... -
Using Properties in Objective-C Tutorial
2012-07-31 16:27 922From: http://www.raywenderlich. ...
相关推荐
这个是我自己写的一个仿iOS滚轮选择器的自定义控件,使用方法和代码分析都在我的博客里,博客地址是:http://blog.csdn.net/wozuihaole/article/details/70169684
开发者通常会利用滚动事件和触摸事件来实现滚轮的滚动效果,并通过自定义绘制方法实现iOS样式的界面。以下是可能涉及的关键知识点: 1. 自定义View:自定义控件通常需要继承自Android的基础视图类,如View或 ...
三、农历选择器实现 农历选择器在许多亚洲国家的APP中非常常见,尤其是在与日期相关的应用中。实现农历选择器需要对农历转换算法有深入理解,一般包括公历与农历之间的相互转换。开发者可能采用了现有的农历库,如...
总之,"Android 仿IOS3D滚轮选择器"是一个涉及自定义View、动画、数据绑定等多个Android开发核心知识点的项目,对于提升Android开发者的技术水平和创新能力有着积极的作用。通过不断实践和学习,我们可以更好地掌握...
本文将详细讲解如何在iOS中实现一个自定义的起始时间选择器视图,包括其主要功能、步骤以及关键代码实现。 首先,自定义起始时间选择器的主要目的是提供用户友好的时间选取界面,它应该具备以下功能: 1. 调用时间...
在Android中,我们可以使用`android.widget.WheelView`或者自定义`ViewGroup`来实现滚轮选择器。如果系统提供的控件无法满足需求,可以创建一个新的`View`类,继承自`View`或`ViewGroup`,并重写`onDraw()`方法绘制...
系统自带的UIPickerView虽然功能强大,但有时并不能完全满足设计师和开发者的需求,因此自定义选择器的实现显得尤为重要。在"ios-自定义选择器.zip"这个压缩包中,包含了一个名为"CustomPickerViewDemol"的示例项目...
综上所述,实现高仿iOS滚轮式城市选择器涉及UI设计、数据处理、自定义视图编写、性能优化等多个方面。通过合理的代码组织和良好的用户体验设计,我们可以创建出一款既美观又实用的城市选择组件。在实际开发中,可以...
下面将详细讨论这个自定义选择器可能涉及的关键知识点和实现方式。 1. 自定义UI组件:iOS开发中,我们有时需要根据设计需求创建自定义的UI控件来替代系统默认的组件。HYMDatePicker就是一个例子,它可能提供了比...
在Android开发中,有时我们需要创建类似iOS风格的滚轮选择器,这种控件通常用于实现多级联动选择,比如省份-城市-区县的选择。在本案例中,我们讨论的是一个名为"Android-可实现三级联动的选择器高仿iOS的滚轮控件...
在本文中,我们将深入探讨如何实现一个仿iOS的日期滑动选择器,并探讨其核心技术和设计要点。 首先,我们需要理解`UIPickerView`的基本原理。它是iOS中的一个控件,用于展示一系列可滚动的行数据,用户可以通过上下...
个顺滑的、高度自定义的滚轮控件和选择器,支持类似 iOS 的 3D 效果。.zip,A smooth, highly customizable wheel view and picker view, support 3D effects like iOS. 一个顺滑的、高度自定义的滚轮控件和选择器,...
本示例——“ios开发控件之自定义选择器”将深入探讨如何在Swift或Objective-C中实现一个自定义的选择器,并提供两种加载选择数据源的方法。这个demo不仅简化了开发流程,还具有高度的灵活性,可以适应各种应用程序...
A smooth, highly customizable wheel view and picker view, support 3D effects like iOS. 一个顺滑的、高度自定义的滚轮控件和选择器,支持类似 iOS 的 3D 效果
本示例中的"ios-自定义的时间选择器.zip"就是一个针对日期和星期的选择器组件,它由新手开发者封装,旨在帮助用户方便地选取特定的年、月、日以及星期。下面将详细介绍这个时间选择器的实现原理和可能涉及的关键技术...
这种滚轮通常用于时间选择器,因为它能够清晰地展示小时和分钟的层次关系。实现立体效果的关键在于处理每一项的渲染和旋转,以及在滚动时动态调整每一层的透明度和位置。开发者可以通过调整参数来控制3D旋转的角度、...
总之,实现一个只显示年月的日期选择器,需要对iOS的UI组件有深入理解,掌握日期处理和自定义视图的技巧。KSDatePickView为你提供了一个解决方案,你可以根据项目需求进行调整和优化。同时,这也是提升iOS开发能力的...
在iOS开发中,选择器(Selector)是一种常用的数据输入组件,通常用于让用户在一组预设选项中进行选择。...这个自定义选择器的实现可以作为iOS开发中的一种最佳实践,对于需要数值输入的场景具有很高的参考价值。