iOS開發-登錄界面開發(6)Toast-Swift的使用-Swfit4.1_Xcode9.3.1


先看一下效果:

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/LoginDemo
JiMideMacBook-Pro:LoginDemo jimi$ pod install
Analyzing dependencies
Downloading dependencies
Using AFNetworking (3.2.1)
Using SwiftyJSON (4.1.0)
Installing Toast-Swift (3.0.1)
Generating Pods project
Integrating client project
Sending stats
Pod installation complete! There are 3 dependencies from the Podfile and 3 total pods installed.

5.在工程里引入,並調用,我們用最簡單的方式(復雜的方式,還有菊花轉和圖片的Toast):

import Toast_Swift

6.引入以后,照舊要按一下,command+b,重新編譯一下工程。下面是完整的登錄Controller:

import UIKit
import SwiftyJSON
import Toast_Swift

class 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.下一篇,我們來實現從登錄界面跳轉到主界面。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM