標籤:alpha project isp let download result doc http 簡單
先看一下效果:
1.前面我們做了登入介面的UI,實現了網路請求,如果使用者輸入了錯誤的VIP號碼,應該提示使用者“VIP號碼不正確”
2.在Android裡面,我們有Toast可以直接使用,在iOS裡,貌似沒有這樣的原生控制項,那麼我們引入第三個開源架構:
Toast-Swift
3.我們來修改一下 Podfile:
/Users/jimi/Documents/iOS/Demo/LoginDemo/Podfile
# 設定支援最低平台platform :ios, ‘8.0‘target ‘LoginDemo‘ do# 如果是Swift項目,需添加"use_frameworks!"use_frameworks!# 如果要使用固定版本 可以像下面這麼寫# pod ‘AFNetworking‘, ‘~> 3.2.1‘pod "AFNetworking"pod "SwiftyJSON"pod ‘Toast-Swift‘, ‘~> 3.0.1‘end
4.開啟終端 重新引入一下第三方架構 (可以看到,引入過AFNetworking/SwiftyJSON不會重新安裝,只會安裝新加進來的Toast-Swift):
JiMideMacBook-Pro:~ jimi$ cd /Users/jimi/Documents/iOS/Demo/LoginDemoJiMideMacBook-Pro:LoginDemo jimi$ pod installAnalyzing dependenciesDownloading dependenciesUsing AFNetworking (3.2.1)Using SwiftyJSON (4.1.0)Installing Toast-Swift (3.0.1)Generating Pods projectIntegrating client projectSending statsPod installation complete! There are 3 dependencies from the Podfile and 3 total pods installed.
5.在工程裡引入,並調用,我們用最簡單的方式(複雜的方式,還有菊花轉和圖片的Toast):
import Toast_Swift
6.引入以後,照舊要按一下,command+b,重新編譯一下工程。下面是完整的登入Controller:
import UIKitimport SwiftyJSONimport Toast_Swiftclass ViewController: UIViewController { @IBOutlet weak var et_vip_code: UITextField! // VIP號碼 @IBOutlet weak var bt_login: UIButton! // 登入按鈕 override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib. } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. } // 登入按鈕 的 點擊事件 @IBAction func bt_login_clicked(_ sender: Any) { //建立請求參數 // let params = ["VIP_keyworld":"595466","password":"123456"] // 多個參數寫法 // let params = ["VIP_keyworld":"595466"] let vipCode = et_vip_code.text! let params = ["xxx":vipCode] // 請求參數 let loginUrl = "http://www.xxx.com/xxx/xxxx.asp" // 請求地址 // 使用 AFNetworking 發送POST請求 NetworkTools.shareInstance.request(methodType: .POST, urlString: loginUrl, parameters: params as [String : AnyObject]) { (result : AnyObject?, error : Error?) in if error != nil { print(error!) return } print(result!) // 使用 SwiftyJSON 解析json -- 這裡解析的是 jsonObject // 如果要解析 jsonArray, SwiftyJSON 更加絲滑, 參考 http://www.hangge.com/blog/cache/detail_968.html let json = JSON(result as Any) if let vip_id = json["id"].string { print("id是:",vip_id) self.view.makeToast("id = " + vip_id) // Toast 提示 if vip_id == "0" { self.view.makeToast("請輸入正確的VIP號碼") // Toast 提示 }else{ self.view.makeToast("登入成功") // Toast 提示 } } } } // 輸入框內容 改變 監聽 @IBAction func et_vip_code_changed(_ sender: Any) { let vipCode = et_vip_code.text! if vipCode.count > 0 { bt_login.backgroundColor = #colorLiteral(red: 0.1921568627, green: 0.5411764706, blue: 1, alpha: 1) // 已經輸入VIP號碼 登入按鈕背景色 } else{ bt_login.backgroundColor = #colorLiteral(red: 0.3137254902, green: 0.3921568627, blue: 0.5137254902, alpha: 1) // 沒有輸入VIP號碼 登入按鈕背景色 } } }
7.Toast-Swift的Github地址:
https://github.com/scalessec/Toast-Swift
8.下一篇,我們來實現從登入介面跳轉到主介面。
iOS開發-登入介面開發(6)Toast-Swift的使用-Swfit4.1_Xcode9.3.1