您现在的位置是:首页 > 文章详情

《iOS 6核心开发手册(第4版)》——2.6节秘诀:添加具有自定义指针的滑块

日期:2017-05-01点击:247

本节书摘来自异步社区《iOS 6核心开发手册(第4版)》一书中的第2章,第2.6节秘诀:添加具有自定义指针的滑块,作者 【美】Erica Sadun,更多章节内容可以访问云栖社区“异步社区”公众号查看

2.6 秘诀:添加具有自定义指针的滑块
iOS 6核心开发手册(第4版)
UISlider实例提供了一个控件,允许用户通过左右滑动一个小按钮(称为它的指针(thumb))来选择一个值。在iPod/Music应用程序中将会看到滑块,其中使用类控制音量。

滑块值默认最小为0.0,最大为1.0,不过,可以在IB属性检查器中或者通过设置minimumValue和maximumValue属性轻松地自定义它们。为了设置控件末端的样式,可以加入一对相关的图像(minimumValueImage和maximumValueImage),强制执行这些设置。例如,你可能想在控制温度设置的滑块一端显示一个雪人,并在另一端显示一杯冒热气的茶。还可以设置滑块指针前后的轨道颜色,以及调整minimumTrackTintColor和maximumTrackTintColor属性(在iOS 5.0及更高版本中可用)。

滑块的continuous属性控制当用户拖动指针时滑块是否持续地发送值更新。当把该属性设置为NO(默认为YES)时,如果用户释放指针,那么滑块只会发送一个动作事件。

2.6.1 自定义UISlider
除了设置最小和最大图像之外,UISlider类还允许直接更新其指针成分。可以通过调用setThumbImage:forState:把指针设置为所喜欢的任何图像。秘诀2-3利用这个选项动态地构建指针图像,如图2-4所示。指示性气泡作为自建指针的一部分出现在用户手指的上方。这个气泡同时以文本(气泡里面的数字)和图形(气泡的阴影反映了滑块值,当用户拖动时从黑色变为白色)方式提供了即时的反馈。


74d9318bd19bcf9102c80b153415d056536ecb49

图2-4 Core Graphics/Quartz调用使这个滑块的指针图像能够基于当前的滑块值变暗或变亮。
指针气泡里面的文本反映了这个值(当用户拖动滑块时,标题栏视图中拉长的图标将调整其大小,
以提供额外的反馈,作为秘诀示例代码中的目标—动作客户的示例)

注意:
在合成UIView时,iOS为视图的图层创建一个位图。使用自定义的视图或者自定义的生成位图之间的性能大致相同。
这类动态构建的反馈可以基于任何类型的数据。你可能从车载传感器上获取值或者浏览Internet,就像使用手指移动滑块一样容易。不管使用哪种真实的更新模式,动态更新肯定是图形密集型的,但它不像你想象的那样昂贵。Core Graphics调用速度很快,并且对于拇指大小的图像来说,内存需求是最低的。

这个特定的秘诀给滑块分配两幅指针图像。仅当在使用滑块(即UIControlStateHighlighted)时,才会出现气泡。在其正常状态(即UIControlStateNormal)下,只会显示较小的矩形指针。用户可以点按指针,查看当前的设置。特定于上下文的反馈气泡模拟在标准iOS键盘上高亮显示的字母。

为了在艺术作品中包容这些改变,滑块将在每种姿势的开始和末尾更新其框架。在触摸(UIControlEventTouchDown)时,框架的高度将扩展到60像素。在交互期间这提供了足够的空间来显示扩展的指针。

当手指从屏幕上移开(UIControlEventTouchUpInside或UIControlEventTouchUpOutside)时,滑块将返回到其以前的尺寸。这可以把空间归还给其他对象,确保滑块将不会激活,除非用户直接触摸它。

2.6.2 提高效率
秘诀2-3存储了滑块的一个以前的值,以最小化iOS上的总体计算负担。当滑块的值至少改变0.1或10%时,它将利用新的自定义图像更新指针。如果愿意,可以省略这项检查,并利用完全真实的更新运行秘诀。在测试时,这会提供相当快的更新,甚至在第一代iPod Touch装置上也是如此。在最新的iPhone和iPad上,根本不会有性能问题。

这个秘诀还避免了滑块末端的任何问题:即当指针到达0.9并且将不会正确地更新为1.0时。在这个秘诀中,提供了一个硬编码的解决办法,用于处理0.98以上的值,它通过强制执行更新来处理这种特定的情形。


e0f9a26312d01d078ec7ba18d2dac2eaf2fd01ca


f4234f92e15a7d0492a6449f7e80eade654e5ba0


96bfadbf1ebe687106abee769a842441b8095517
原文链接:https://yq.aliyun.com/articles/98404
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章