首页 > 其他分享 >iOS中登錄功能的體驗探究

iOS中登錄功能的體驗探究

时间:2022-12-27 18:37:46浏览次数:70  
标签:iOS 中登錄 體驗 設置 用戶 輸入 類型 登錄 鍵盤


登錄功能是我在​​湖畔​​做的第一個需求。

 

當時PD给我的草圖和下圖類似:

(圖片來自知乎iOS客戶端登錄界面) 

不過需求中要求用戶名或者密碼錯誤時,輸入框要抖動(類似Mac登錄密碼錯誤的抖動效果)。

 

如果實現上圖的UI布局,那麼輸入框抖動是上下單元格獨立抖動還是整體抖動?

  • 獨立抖動:會出現上下單元格邊界不齊的斷裂效果,破壞美感。
  • 整體抖動:只是用戶名錯誤,密碼框为什麼抖動?给用戶的提示不清晰。

我個人不希望给用戶不友好的信息,所以我做成了下面的效果:

 

由於我做的效果和PD想要的不一致,所以還產生了一番討論。

为此,不得不向PD普及一下網站登錄檢查的基本流程,讓他知道會先檢查用戶名是否存在,才會進一步判斷用戶名和密碼是否匹配。

我是以前寫過一段時間PHP做網站,自然而然就這麼想了。那麼,PD同學不了解相關知識,是否可以理解呢?

突然有疑惑,一畢業就在互聯網行業當產品經理的同學,大多是什麼專業畢業,應該具備哪些專業背景呢?我個人認为核心素質之一是站在用戶的角度思考問題。​​這裏​​是知乎的一份討論。

最後,PD同學在被服務器端同學鄙視了一下的情況下,也贊同了該方案。

 

在這個模塊中,主要涉及到​​UITextField​​​以及一些​​用戶輸入交互特性​​。

以用戶名輸入框为例,上面兩張登錄圖都可以輸入Email,那麼此時的鍵盤應該呈什麼布局呢?

不妨看下幾個客戶端的登錄界面:

 

 

 (湖畔iOS版登錄界面)

剛開始做登錄模塊時,我將鍵盤設置为UIKeyboardTypeEmailAddress類型,不過後來PD一直強調要改回英文鍵盤(即UIKeyboardTypeAlphabet類型)。因为對於中文用戶來說,EmailAddress類型鍵盤默認是中文的,輸入過程中會有中文提示產生,如下面第二張知乎截圖。

不過我們來認真探究下用戶的輸入體驗,以[email protected]为例:

  • UIKeyboardTypeAlphabet:用戶在輸入點號或者@符號時需要進行鍵盤切換,所以在輸入上述郵箱時一共要切換6次鍵盤類型。
  • UIKeyboardTypeEmailAddress:看起來在輸入過程中會產生中文字符,不過該類型的鍵盤布局包含了 符號和 圓點符號。當輸入@符號或者點號時,用戶輸入的所有字符會作为英文字母放進輸入框中,只需要在最後敲一下“確認”鍵。

所以,就我個人的體驗來說,我認为是UIKeyboardTypeEmailAddress類型是更友好的。

 

 

 

 (知乎iOS版登錄界面)

當我为湖畔用戶名輸入框設置为UIKeyboardTypeEmailAddress類型時,我特地看了下知乎登錄界面的用戶名輸入框,那時候知乎采用的是UIKeyboardTypeAlphabet類型。當時我沾沾自喜了下,沒想到現在顛倒過來。誰在進步,誰在退步?

 

 

 

(新浪微博iOS版登錄界面)

新浪微博的鍵盤默認也是UIKeyboardTypeEmailAddress類型的,更進一步說明了問題。

其實,蘋果本身特地提供了UIKeyboardTypeEmailAddress類型鍵盤就很說明問題了。

 

 

 (微信iOS版)

微信一直廣受好評,尤其是最近關於“張小龍”、“微信”、“產品”的熱門詞匯(​​1​​​,​​2​​​,​​3​​),更是將其擁上了另一個高台。

不過,就我淺薄的認知,我認为上面兩張微信截圖的鍵盤布局都應該是UIKeyboardTypeAlphabet類型的。

首先看“修改微信號”界面。微信號只能包含字母、數字、下劃線和減號,那麼設置UIKeyboardTypeEmailAddress鍵盤類型並沒有为用戶提供便利,且由於上面提過的默認中文鍵盤問題,用戶在輸入過程中會有中文字符產生,相較於流暢的純英文輸入,會有“阻礙感”和“不爽感”。我個人覺得這是正常的用戶心理,當然,也有可能我不是正常的用戶?

另外,登錄界面就多了QQ號和手機號兩種账號類型,且都是純數字的,所以這裏的帳號約等於微信號。那麼,這裏的鍵盤布局为什麼和“修改微信號”的鍵盤布局不一致,使用默認的中文鍵盤呢?

所以,我個人認为,在這兩個界面中,中文鍵盤對用戶來說都是一種阻礙,應該設置为UIKeyboardTypeAlphabet類型。

騰訊是很追求產品細節和用戶體驗的,微信更是騰訊產品中的佼佼者,为何會存在這样的細節問題?或者是由於我視野太局限,看不懂?

 

 

 (QQ登錄界面)

QQ的新界面還是令人耳目一新,頗有檔次的。而鍵盤布局也沒什麼特別好說的,就是純數字。

 

--------------------------------------------------

 

除了​​鍵盤類型​​的使用:_usernameText.keyboardType = UIKeyboardTypeAlphabet;,UITextField還涉及了其它一些細節處理:

 

  • 設置邊框類型:[_usernameText setBorderStyle:UITextBorderStyleRoundedRect];。關於邊框類型,​​這裏​​有詳細說明。
  • 設置默認文案:_usernameText.placeholder = TEXT_LOGIN_NAME_PLACEHOLDER;,给用戶友好提示。
  • 設置控件內容的對齊方式:_usernameText.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter;,​​這裏​​有詳細說明。
  • 設置首字符是否默認大寫:_usernameText.autocapitalizationType = UITextAutocapitalizationTypeNone;。
  • 設置是否開启糾錯提醒:_usernameText.autocorrectionType = UITextAutocorrectionTypeNo;。
  • 設置何時提供clear按鈕:_usernameText.clearButtonMode = UITextFieldViewModeWhileEditing;,​​這裏​​有相關說明。
  • 設置成为焦點:[_usernameText becomeFirstResponder];。當界面中除了輸入框和登錄按鈕外,最好一開始就讓輸入框成为響應者,好讓鍵盤遮掉空白部分。
  • 設置是否密文顯示:_userpwdText.secureTextEntry = YES;。如果是密碼輸入框,當然要了。
  • 設置回車鍵類型:_usernameText.returnKeyType = UIReturnKeyNext;,​​這裏​​有更多說明。通常,輸入完用戶名,我們還需要輸入密碼,所以設置为UIReturnKeyNext類型;而輸入完密碼,就完成輸入要進行登錄了,所以要設置为UIReturnKeyDone類型。

 

 

最後,我們還要設置代理:_usernameText.delegate = self;。

通過代理方法,我們可以進行更多的控制,比如:

 

  • - (BOOL)textFieldShouldReturn:(UITextField *)textField:響應回車鍵處理。
  • - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string:做一些過滤處理。比如SO上有一份​​關於退格鍵檢測的討論​​。

 

更多可参見​​官方文檔​​。

标签:iOS,中登錄,體驗,設置,用戶,輸入,類型,登錄,鍵盤
From: https://blog.51cto.com/u_3457306/5973148

相关文章

  • IOS 6 自动布局 入门-1
    这篇文章还可以在这里找到 ​​英语​​​, ​​韩语​​​, ​​土耳其语​​​​​​来自Ray:恭喜各位!你们已经通过宣传​​iosfeast​​提前解锁了第一个有关IOS6的教......
  • iOS学习笔记45—本地通知UILocalNotification
    在iOS中有两类信息提示推送方式,一类是远程服务器推送(APNS),之前有笔记9​​,还有一类就是本地通知UILocalNotification,今天就简要的记录一下UILocalNotification的使用,代码里见......
  • iOS6下自定义UI控件外观效果
    尽管iOS原生的UI控件就已经有很不错的显示效果,但是App开发者仍然希望自己的产品与众不同,所以自定义UI外观成了每个App产品开发必做之事。今天就来做一个在iOS6下实现自定义U......
  • IOS中Json解析的四种方法
    作为一种轻量级的数据交换格式,json正在逐步取代xml,成为网络数据的通用格式。有的json代码格式比较混乱,可以使用此“http://www.bejson.com/”网站来进行JSON格式化校验(​​......
  • iOS多线程编程之NSThread的使用
    1、简介:1.1iOS有三种多线程编程的技术,分别是:1.、​​NSThread​​ 2、​​CocoaNSOperation​​ (​​iOS多线程编程之NSOperation和NSOperationQueue的使用​​)3、​​G......
  • iOS第三方开源库的吐槽和备忘
    做iOS开发总会接触到一些第三方库,这里整理一下,做一些吐槽。 目前比较活跃的社区仍旧是Github,除此以外也有一些不错的库散落在GoogleCode、SourceForg......
  • iOS 开发者必不可少的 75 个工具
    如果你去到一位熟练的木匠的工作室,你总是能发现他/她有一堆工具来完成不同的任务。软件开发同样如此。你可以从软件开发者如何使用工具中看出他水准如何。有经验的开发者精......
  • 【iOS知识学习】_iOS开源项目汇总
    扫描wifi信息:​​http://code.google.com/p/uwecaugmentedrealityproject/​​​​http://code.google.com/p/iphone-wireless/​​条形码扫描:​​http://zbar.sourceforge.......
  • 关于iOS常用的26中公共方法,可copy的代码
    1.获取磁盘总空间大小//磁盘总空间+(CGFloat)diskOfAllSizeMBytes{CGFloatsize=0.0;NSError*error;NSDictionary*dic=[[NSFileManagerdefaultManager]attribu......
  • ios 逆向 随笔
    使用爱思助手打开ssh通道登入ssh-p2222root@localhostalpine注:如无法连接,可直接删除.ssh目录user/用户/.ssh(rm-rf.ssh)使用frida-ios-dump-master目录中的dump.py脚......