上一篇中脚翘,我已經(jīng)很詳細的介紹了ReactiveSwift灼卢,接下來我就舉個簡單的例子供大家參考。
鍵盤的監(jiān)聽
這在我們開發(fā)中很常用来农,因為很多App都需要對登錄注冊進行判斷鞋真,這樣可以避免服務(wù)器存儲很多廢數(shù)據(jù),減輕服務(wù)器的壓力沃于。
首先我們先看一下效果圖涩咖,當然這個只是個簡單的damo項目地址
git clone https://github.com/KingComeFromChina/ReactiveSwiftDamo
1.png
2.png
3.png
4.png
接下來就讓我詳細的解釋一下這些是怎么實現(xiàn)的吧海诲。
1.首先,我們用<code>cocoaPod</code>
pod 'ReactiveCocoa'
4.png
2.在類中頂部位置導入頭文件
5.png
3.搭建UI抠藕,這個就不多說了饿肺,無論你是純代碼擼還是Xib拉,無所謂了
4.聲明兩個私有變量盾似,用戶名是否合法敬辣,密碼是否合法
6.png
對了,在這里跟大家分享兩個正則表達式零院,一個判斷是否是手機號溉跃,一個判斷密碼是否是字母加數(shù)字多少多少位的,這個也是很常用的
7.png
5.接下來就到了關(guān)鍵地方
監(jiān)聽鍵盤的內(nèi)容告抄,RAC中已經(jīng)封裝好了專門的方法
8.png
創(chuàng)建用戶名撰茎、密碼合法信號和訂閱信號
9.png
這上面兩個傳遞的都是顏色數(shù)據(jù),通過驗證用戶名和密碼是否合法從而改變輸入字體的顏色和提示語的隱藏打洼,其實是BOOL類型的信號龄糊,然后傳遞顏色數(shù)據(jù),觀察者訂閱信號后根據(jù)信號的BOOL值改變顏色
10.png
創(chuàng)建登錄按鈕合法性信號募疮,通過判斷用戶名合法信號和密碼合法信號同時滿足時炫惩,登錄按鈕信號BOOL值為true,這個可以控制按鈕是否可以被點擊