如果需要支援 ios7 以下的話可以考慮使用這套
使用上個人認為也相當容易~
以下代碼為在 UIViewController 中放置一個 320*320 的 UIImageView
並將 QRCode 呈現在 UIImageView 中
MainViewController.m- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view.
UIImageView *imageview_qr = [[UIImageView alloc]initWithFrame:CGRectMake(0, 20, 320, 320)];
[self.view addSubview:imageview_qr];
[imageview_qr release];
//呈現 QRCode 的 UIImageView
NSString *str_qr = @"Hello QRcode Generator";
NSData *data_qr = [str_qr dataUsingEncoding:NSUTF8StringEncoding];
//要轉換為 QRCode 的內容
CIFilter *filter = [CIFilter filterWithName:@"CIQRCodeGenerator"];
[filter setValue:data_qr forKey:@"inputMessage"];
//關於使用的 Name 請參考 IOS Developer Library 的 Core Image Filter Reference
UIImage *image_qr = [UIImage imageWithCIImage:[filter outputImage]];
//讀出 CIFilter 的 outputImage
UIGraphicsBeginImageContext(imageview_qr.frame.size);
CGContextRef cgcontext = UIGraphicsGetCurrentContext();
CGContextSetInterpolationQuality(cgcontext, kCGInterpolationNone);
[image_qr drawInRect:CGRectMake(0, 0, imageview_qr.frame.size.width, imageview_qr.frame.size.height)];
UIImage *image_out = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
//將 image_qr 縮放成符合 UIImageView 的大小
[imageview_qr setImage:image_out];
}
Should look like ~