【iOS开发每日小笔记(一)】UIPickerView 自动选择某个component的某个row
這篇文章是我的【iOS開發(fā)每日小筆記】系列中的一片,記錄的是今天在開發(fā)工作中遇到的,可以用很短的文章或很小的demo演示解釋出來的小心得小技巧。它們可能會(huì)給用戶體驗(yàn)、代碼效率得到一些提升,或是之前自己沒有接觸過的技術(shù),很開心的學(xué)到了,放在這里得瑟一下。90%的作用是幫助自己回顧、記憶、復(fù)習(xí)。
?
今天在項(xiàng)目中遇到這樣一個(gè)小問題:我使用UIPickerView,獲取用戶選擇的時(shí)間,時(shí)間分為小時(shí)和分鐘兩欄,而且要求不能選0小時(shí)0分鐘(也就是最小值是0小時(shí)1分鐘)。
一開始我的做法是,當(dāng)用戶選擇好時(shí)間后,點(diǎn)擊一個(gè)“下一步”按鈕,此時(shí)判斷用戶選擇的時(shí)間,如果是0小時(shí)0分鐘,則給出提示,“請(qǐng)重新設(shè)置時(shí)間”。這是一種比較常規(guī)的做法。但當(dāng)我的項(xiàng)目PL看到后,對(duì)我說,是否能優(yōu)化一下,做成用戶選擇0小時(shí)0分鐘時(shí),自動(dòng)的將picker上0分鐘改為選擇1分鐘?我說:“把你要抄的APP拿來給我看吧”,PL掏出手機(jī),我看到了他所說的效果。(其實(shí)后半段是個(gè)段子啦O(∩_∩)O哈哈哈~)。
效果圖:
解釋一下:假設(shè)左邊為小時(shí),可選的為0小時(shí)和1小時(shí),右邊為分鐘,可選0到59分鐘。用戶只能選0小時(shí)1分鐘到1小時(shí)59分鐘里的每一個(gè)可選搭配。那么,現(xiàn)在如果用戶選擇了0小時(shí)0分鐘,那么0分鐘將自動(dòng)跳轉(zhuǎn)為1分鐘。如果用戶選的是1小時(shí)0分鐘,此時(shí)再將1小時(shí)改為0小時(shí),那么0分鐘也將自動(dòng)轉(zhuǎn)為1分鐘,總之就是不讓你選0小時(shí)0分鐘。這樣做的好處是,省去了用戶點(diǎn)擊“請(qǐng)重新設(shè)置時(shí)間”的AlertView警告框。是一種人性化的用戶體驗(yàn)的提升!(不得不說PL的事業(yè)就是高我一籌啊,呵呵。。。)
好了現(xiàn)在說實(shí)現(xiàn),我為此做了個(gè)簡(jiǎn)單的Demo,放在了這里(https://github.com/pigpigdaddy/PickerAdvanceDemo)請(qǐng)看官斧正!
其實(shí)還真是很簡(jiǎn)單
關(guān)鍵的代碼幾行:
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 }其中兩個(gè)屬性@property:
1 @property (nonatomic, assign) NSInteger hour; 2 @property (nonatomic, assign) NSInteger minute;用來記錄選中的小時(shí)和分鐘。
這個(gè)邏輯真的很簡(jiǎn)單,不用我一行行解釋了。
其實(shí)本文就一個(gè)觀點(diǎn):有時(shí)候,站在用戶的角度想想,是否我們的人機(jī)交互體驗(yàn)可以更好?利用iOS提供的接口,簡(jiǎn)單的方法可能會(huì)給用戶帶來很多小小的優(yōu)化體驗(yàn)!
轉(zhuǎn)載于:https://www.cnblogs.com/pigpigDD/p/3898098.html
總結(jié)
以上是生活随笔為你收集整理的【iOS开发每日小笔记(一)】UIPickerView 自动选择某个component的某个row的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: WebApi个人理解概要
- 下一篇: Visual Studio 快捷键汇总