日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

IOS二维码的实现

發(fā)布時間:2024/9/30 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 IOS二维码的实现 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
如今二維碼隨處可見,無論是實物商品還是各種禮券都少不了二維碼的身影。而手機等移動設(shè)備又成為二維碼的一個很好的應(yīng)用平臺,不管是生成二維碼還是掃碼二維碼。

下面介紹一下如何在蘋果iOS設(shè)備上使用二維碼:


1. 掃描二維碼(解碼)
掃描二維碼的開源庫有很多如 ZBar、ZXing等。在此以ZBar作為例子構(gòu)建二維碼掃碼應(yīng)用。
首先在github上下載ZBar SDK
地址https://github.com/bmorton/ZBarSDK
打開壓縮包,其中有ZBarSDK 文件夾
將ZBarSDK 文件夾包含到項目中來
(Finder)
(XCode)
其中包含一個libzbar.a的靜態(tài)庫
接著往項目中添加Framework框架及鏈接庫(動態(tài)庫、靜態(tài)庫)。在項目屬性TARGETS?Summary 中找到Linked Frameworks and Libraries
添加
AVFoundation.framwork, CoreMedia.framework, CoreVideo.framework, libiconv.dylib 和libzbar.a (如圖)



然后在使用的地方引入頭文件
#import "ZBarSDK.h"
調(diào)用ZBar的類必須實現(xiàn)ZBarReaderDelegate協(xié)議
如:UIViewController <ZBarReaderDelegate>
在- (void) imagePickerController: (UIImagePickerController*) reader
didFinishPickingMediaWithInfo: (NSDictionary*) info
最后在協(xié)議方法中通過info獲取結(jié)果值
[cpp]?view plaincopy
  • id<NSFastEnumeration>?results?=?[info?objectForKey:?ZBarReaderControllerResults];??
  • ZBarSymbol?*symbol?=?nil;??
  • for(symbol?in?results)??
  • //?EXAMPLE:?just?grab?the?first?barcode???
  • break;??
  • ??
  • //?EXAMPLE:?do?something?useful?with?the?barcode?data???
  • resultText.text?=?symbol.data;??
  • [cpp]?view plaincopy
  • id<NSFastEnumeration>?results?=?[info?objectForKey:?ZBarReaderControllerResults];??
  • ZBarSymbol?*symbol?=?nil;??
  • for(symbol?in?results)??
  • //?EXAMPLE:?just?grab?the?first?barcode??
  • break;??
  • ??
  • //?EXAMPLE:?do?something?useful?with?the?barcode?data??
  • resultText.text?=?symbol.data;??

  • 文檔地址http://zbar.sourceforge.net/iphone/sdkdoc/
    二維碼開源庫ZXing的加載過程與此類似,但是ZXing默認(rèn)并不支持一維碼的掃描,而ZBar是支持的。

    2. 生成二維碼(編碼)
    在生成二維碼的庫中QREncoder 比較好用。ZXing庫的android版本是帶java版的編碼庫的但不知為何沒有C++版的解碼庫,故在ios上也沒法解碼,如果應(yīng)用中既要生成二維碼又要掃描二維碼就有可能要帶兩套不同的庫。
    首先同樣是在github 上下載到SDK庫
    地址https://github.com/jverkoey/ObjQREncoder
    解壓后將源碼庫直接包含到項目中來(如圖)



    設(shè)置頭文件路徑,在TARGET中building settings ? Search Path

    當(dāng)然也可以直接將庫編譯成靜態(tài)庫libQREcoder.a然后在包含進來

    接著在Frameworks 中添加靜態(tài)庫的引用



    然后在使用該庫的地方包含頭文件
    #import <QREncoder/QREncoder.h>
    注意:二維碼顯示的時候有可能會因為圖像的大小而做調(diào)整,所以需要包含系統(tǒng)庫QuartzCore.framework
    最后就可以調(diào)用編碼庫了:

    [cpp]?view plaincopy
  • UIImage*?image?=?[QREncoder?encode:@"http://www.baidu.com/"];??
  • [cpp]?view plaincopy
  • UIImage*?image?=?[QREncoder?encode:@"http://www.baidu.com/"];??



  • 更多6

    總結(jié)

    以上是生活随笔為你收集整理的IOS二维码的实现的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。