【iOS开发每日小笔记(一)】UIPickerView 自动选择某个component的某个row
这篇文章是我的【iOS开发每日小笔记】系列中的一片,记录的是今天在开发工作中遇到的,可以用很短的文章或很小的demo演示解释出来的小心得小技巧。它们可能会给用户体验、代码效率得到一些提升,或是之前自己没有接触过的技术,很开心的学到了,放在这里得瑟一下。90%的作用是帮助自己回顾、记忆、复习。
今天在项目中遇到这样一个小问题:我使用UIPickerView,获取用户选择的时间,时间分为小时和分钟两栏,而且要求不能选0小时0分钟(也就是最小值是0小时1分钟)。
一开始我的做法是,当用户选择好时间后,点击一个“下一步”按钮,此时判断用户选择的时间,如果是0小时0分钟,则给出提示,“请重新设置时间”。这是一种比较常规的做法。但当我的项目PL看到后,对我说,是否能优化一下,做成用户选择0小时0分钟时,自动的将picker上0分钟改为选择1分钟?我说:“把你要抄的APP拿来给我看吧”,PL掏出手机,我看到了他所说的效果。(其实后半段是个段子啦O(∩_∩)O哈哈哈~)。
效果图:
解释一下:假设左边为小时,可选的为0小时和1小时,右边为分钟,可选0到59分钟。用户只能选0小时1分钟到1小时59分钟里的每一个可选搭配。那么,现在如果用户选择了0小时0分钟,那么0分钟将自动跳转为1分钟。如果用户选的是1小时0分钟,此时再将1小时改为0小时,那么0分钟也将自动转为1分钟,总之就是不让你选0小时0分钟。这样做的好处是,省去了用户点击“请重新设置时间”的AlertView警告框。是一种人性化的用户体验的提升!(不得不说PL的事业就是高我一筹啊,呵呵。。。)
好了现在说实现,我为此做了个简单的Demo,放在了这里(https://github.com/pigpigdaddy/PickerAdvanceDemo)请看官斧正!
其实还真是很简单
关键的代码几行:
1 - (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component 2 { 3 if (component == 0) { 4 self.hour = row; 5 }else{ 6 self.minute = row; 7 } 8 if ((self.hour == 0 && component == 1 && row == 0) || (self.minute == 0 && component == 0 && row == 0)) { 9 [pickerView selectRow:1 inComponent:1 animated:YES]; 10 } 11 12 }
其中两个属性@property:
1 @property (nonatomic, assign) NSInteger hour; 2 @property (nonatomic, assign) NSInteger minute;
用来记录选中的小时和分钟。
这个逻辑真的很简单,不用我一行行解释了。
其实本文就一个观点:有时候,站在用户的角度想想,是否我们的人机交互体验可以更好?利用iOS提供的接口,简单的方法可能会给用户带来很多小小的优化体验!
转载于:https://www.cnblogs.com/pigpigDD/p/3898098.html
【iOS开发每日小笔记(一)】UIPickerView 自动选择某个component的某个row相关推荐
- 【iOS开发每日小笔记(二)】gitHub上的开源“瀑布流”使用心得
这篇文章是我的[iOS开发每日小笔记]系列中的一片,记录的是今天在开发工作中遇到的,可以用很短的文章或很小的demo演示解释出来的小心得小技巧.它们可能会给用户体验.代码效率得到一些提升,或是之前自己 ...
- 【iOS开发每日小笔记(七)】UITextView UITextField 检测并过滤Emoji表情符号
这篇文章是我的[iOS开发每日小笔记]系列中的一片,记录的是今天在开发工作中遇到的,可以用很短的文章或很小的demo演示解释出来的小心得小技巧.它们可能会给用户体验.代码效率得到一些提升,或是之前自己 ...
- 【课程设计】UWP 开发入门小笔记(1)
UWP 开发入门小笔记(1) 零.介绍 一.系列介绍[p1] 二.创建第一个属于自己的UWP应用[p2] (一)一个button的属性: (二)修改属性的三种方法 (三)字号(以后会细讲) 三.UWP ...
- iOS开发的学习笔记
引言 之前做过半年的iOS开发,从完全不懂的移动开发的菜鸟,到完成前端UI开发的菜鸟,做的一些笔记,希望对大家有用,也希望这些总结的东西对以后会有作用. 开发环境 iOS的系统框架分为四个层次: 核心 ...
- IOS开发辅助小工具
现在做IOS开发,有时想看一下应用下的文件及目录是什么样的,所有就有了前面文章中的小工具mini文件系统: 又有时候,不仅仅是开发,测试也会想去了解下当前数据库内,存的数据是什么情况,所以就有了前面文 ...
- iOS开发实战小知识点(四)
一. iOS 连续多次 Present VC,dismiss 之后可能异常 记住: 谁present 谁dismiss. 我们习惯都是在presented VC直接dismiss的,一般不会出现问题, ...
- uni开发微信小程序自定义相机自动检测(人像+身份证)
之前开发过微信小程序自定义相机拍照检测人像和身份证检测.一直期望写篇文章记录一下,趁现在有点时间,总结一下. 需求点: 1.能够自定拍摄人像 2.能够自动拍摄身份证正面照 3.识别身份证并且和人脸照比 ...
- iOS开发实战小知识点(五)——获取JS meta异常
####在开发中遇见一个问题: 获取H5某个meta的值,在iOS 10(包括)系统以上可以正常获取,但是在iOS 10系统以下获取meta值返回为nil. #####代码如下: NSString * ...
- IOS开发之小实例--UIImagePickerController
摘自:http://www.cnblogs.com/goodboy-heyang/p/5403947.html 前言:本篇博文是本人阅读国外的IOS Programming Tutorial的一篇入门 ...
最新文章
- Web充斥着存在漏洞的过期JavaScript库
- 【转载】使用javassist动态注入代码
- 实例演示如何在spring4.2.2中集成hibernate5.0.2并创建sessionFactory
- c语言和其他高级语言一样也要经过编译,C语言和其他高级语言的最大的区别是什么?...
- 防范sql注入式攻击(Java字符串校验,高可用性)
- html-edm(邮件营销)编写规则
- Cloud for Customer UI designer自动生成的一些模型
- python中如何安装django库_python安装好django库,新建django项目
- leetcode1343. 大小为 K 且平均值大于等于阈值的子数组数目(队列)
- 北京重磅发布:杰青、优青放宽女性年龄限制,基金人才评审“同等条件下女性优先”...
- corn表达式的简单使用
- c/c++教程 - 2.4.3 this指针作用,链式编程思想,空指针访问成员函数,const修饰成员函数,常函数,常对象
- SPSS可信度数据分析
- Verilog 基本电路1-与或非,异或门
- 爬虫入门经典(十六) | 一文带你爬取斗鱼主播相关信息
- [转] 一篇不错的Perl-LWP文档
- MySQL取离当前时间最近的记录
- C# managed, unmanaged, unsafe 的比较
- Tor 和I2P 网络正遭大规模DDoS 攻击
- Java中String转为Long
热门文章
- 首款鸿蒙系统终端n,荣耀智慧屏正式发布,首款搭载鸿蒙系统终端,家庭C位新选择...
- webase crud查看所有表_Laravel-Gii 可视化代码生成工具 CRUD +GUI
- linux c实现mypwd
- 【C++ grammar】抽象、封装与this指针
- 8253译码电路设计以及初始化编程讲解
- 使用FD_CLOEXEC实现close-on-exec,关闭子进程无用文件描述符
- ffmpeg 命令过滤器裁剪
- nginx php fpm 日志,nginx下php-fpm不记录php报错日志怎么办?
- jbod ugood 磁盘驱动状态_如何检查Mac磁盘空间,mac磁盘空间其他怎么清理
- exar 带容隔离_带有美白功效的6款隔离霜 美白隔离两不误