利用一個(gè)小demo來(lái)對(duì)二維碼進(jìn)行學(xué)習(xí),總共四個(gè)界面(主界面,生成二維碼界面,識(shí)別二維碼界面,掃描二維碼界面)
一.二維碼的介紹
1.什么是二維碼?
二維條碼/二維碼是用某種特定的幾何圖形按一定規(guī)律在平面分布的黑白相間的圖形記錄數(shù)據(jù)符號(hào)信息的
總結(jié): 用圖形記錄標(biāo)記一些信息,方便通過(guò)圖形識(shí)別來(lái)獲取信息
2 應(yīng)用場(chǎng)景
信息獲?。⒌貓D、WIFI密碼、資料)
手機(jī)電商(用戶掃碼、手機(jī)直接購(gòu)物下單)
手機(jī)支付(掃描商品二維碼,通過(guò)銀行或第三方支付提供的手機(jī)端通道完成支付)
微信添加好友
二.二維碼界面的搭建
1.總共四個(gè)界面,可以采用storyBoard來(lái)搭建
2.四個(gè)storyBoard放在一個(gè)界面,看起來(lái)不美觀,還很容易搞混,有沒(méi)有優(yōu)化方案?
可以把四個(gè)storyBoard分別開(kāi)來(lái),單獨(dú)放到一個(gè)界面里面
3.怎么把storyBoard單獨(dú)放在一個(gè)界面,而且還讓這些界面有聯(lián)系(連線)?
可以用storyBoard reference 來(lái)解決 就是用一個(gè)引用來(lái)代替storyBoard,保持storyBoard間的聯(lián)系(連線)
4.最終效果
三.二維碼的生成
1.生成二維碼的步驟
1.1 創(chuàng)建濾鏡 CIFilter
濾鏡屬于CoreImage框架,要導(dǎo)入該框架 該框架將常用來(lái)處理圖片(生成毛玻璃效果/二維碼)
1.2 給濾鏡設(shè)置內(nèi)容(用kvc方式賦值)
內(nèi)容必須為NSData類型
1.3 獲取生成的二維碼圖片
獲取的圖片是CIImage類型的,使用的話要進(jìn)行轉(zhuǎn)換
2.運(yùn)行程序發(fā)現(xiàn)生成的二維碼圖片很模糊,為什么?
生成為二維碼圖片大小為 27 * 27 被拉伸的太大,所以不清晰
3.怎么顯示清晰的二維碼?
蘋(píng)果提供一個(gè)api(CIImage的方法)對(duì)圖片放大,還不影響清晰度
1 // 1.創(chuàng)建Transform orginalImage的數(shù)據(jù)類型為CIImage2 &n