AJ分享,必須精品markdown
二維碼是一項項目中可能會用到的,iOS打開相機索取二維碼的速度可不是Android能比的。。。(Android掃描二維碼要來回來回晃。。。)框架
簡單很少說,如何把一段資料(網址呀,字符串)變成二維碼,直接上代碼
步驟:
導入CoreImage框架 #import <CoreImage/CoreImage.h>
經過濾鏡CIFilter生成二維碼ui
#import "ViewController.h"
#import <CoreImage/CoreImage.h>
@interface ViewController ()
@property (weak, nonatomic) IBOutlet UIImageView *iv;
@end
@implementation ViewController
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
// 1.實例化二維碼濾鏡
CIFilter *filter = [CIFilter filterWithName:@"CIQRCodeGenerator"];
// 2.恢復濾鏡的默認屬性 (由於濾鏡有可能保存上一次的屬性)
[filter setDefaults];
// 3.將字符串轉換成NSdata
NSData *data = [@"http://www.itheima.com" dataUsingEncoding:NSUTF8StringEncoding];
// 4.經過KVO設置濾鏡, 傳入data, 未來濾鏡就知道要經過傳入的數據生成二維碼
[filter setValue:data forKey:@"inputMessage"];
// 5.生成二維碼
CIImage *outputImage = [filter outputImage];
UIImage *image = [UIImage imageWithCIImage:outputImage];
// 6.設置生成好得二維碼到imageview上
self.iv.image = image;
}
@end