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