// // ShareViewController.m // 千模 // // Created by Drew on 2018/10/25. // Copyright © 2018 MUMEI. All rights reserved. // #import "ShareViewController.h" #import "SharePopViewController.h" #import @interface ShareViewController () @property(weak, nonatomic) IBOutlet UIView *qrcodeContainer; @property(weak, nonatomic) IBOutlet UIImageView *img; @end @implementation ShareViewController - (void)viewDidLoad { [super viewDidLoad]; UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom]; btn.frame = CGRectMake(0, 0, 40, 40); UIImage *image = [[UIImage imageNamed:@"backBtn"] imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate]; [btn setImage:image forState:UIControlStateNormal]; btn.imageEdgeInsets = UIEdgeInsetsMake(0, -20, 0, 0); btn.tintColor = [UIColor whiteColor]; [btn addTarget:self action:@selector(backClick) forControlEvents:UIControlEventTouchUpInside]; UIBarButtonItem *leftItem = [[UIBarButtonItem alloc] initWithCustomView:btn]; UIBarButtonItem *nagetiveSpacer = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFixedSpace target:nil action:nil]; nagetiveSpacer.width = -12;//这个值可以根据自己需要自己调整 self.navigationItem.leftBarButtonItems = @[nagetiveSpacer, leftItem]; switch (self.type) { case 1: [self.img setImage:[UIImage imageNamed:@"text_yonghuduan"]]; break; case 2: [self.img setImage:[UIImage imageNamed:@"text_moteduan"]]; break; default: [self.img setImage:[UIImage imageNamed:@"text_yonghuduan"]]; break; } } - (void)viewDidLayoutSubviews { [super viewWillLayoutSubviews]; // gradient CAGradientLayer *gl = [CAGradientLayer layer]; gl.frame = self.view.bounds; gl.startPoint = CGPointMake(0.5, 0); gl.endPoint = CGPointMake(0.5, 1); gl.colors = @[(__bridge id) [UIColor colorWithRed:251 / 255.0 green:92 / 255.0 blue:163 / 255.0 alpha:1].CGColor, (__bridge id) [UIColor colorWithRed:253 / 255.0 green:127 / 255.0 blue:141 / 255.0 alpha:1].CGColor]; gl.locations = @[@(0), @(1.0f)]; [self.view.layer insertSublayer:gl atIndex:0]; self.qrcodeContainer.layer.cornerRadius = 12; UIImageView *qrcode = [[UIImageView alloc] initWithFrame:CGRectMake(7, 7, self.qrcodeContainer.frame.size.width - 14, self.qrcodeContainer.frame.size.width - 14)]; qrcode.image = [self generateQRCod:shareUrl(@(self.type), [[NSUserDefaults standardUserDefaults] objectForKey:@"qrcode"]) withSize:qrcode.frame.size.width]; [self.qrcodeContainer addSubview:qrcode]; } - (UIImage *)generateQRCod:(NSString *)content withSize:(CGFloat)size { // 1.创建过滤器,这里的@"CIQRCodeGenerator"是固定的 CIFilter *filter = [CIFilter filterWithName:@"CIQRCodeGenerator"]; // 2.恢复默认设置 [filter setDefaults]; // 3. 给过滤器添加数据 NSData *data = [content dataUsingEncoding:NSUTF8StringEncoding]; // 注意,这里的value必须是NSData类型 [filter setValue:data forKeyPath:@"inputMessage"]; // 4. 生成二维码 CIImage *image = [filter outputImage]; CGRect extent = CGRectIntegral(image.extent); CGFloat scale = MIN(size / CGRectGetWidth(extent), size / CGRectGetHeight(extent)); // 1. 创建bitmap size_t width = CGRectGetWidth(extent) * scale; size_t height = CGRectGetHeight(extent) * scale; CGColorSpaceRef cs = CGColorSpaceCreateDeviceGray(); CGContextRef bitmapRef = CGBitmapContextCreate(nil, width, height, 8, 0, cs, (CGBitmapInfo) kCGImageAlphaNone); CIContext *context = [CIContext contextWithOptions:nil]; CGImageRef bitmapImage = [context createCGImage:image fromRect:extent]; CGContextSetInterpolationQuality(bitmapRef, kCGInterpolationNone); CGContextScaleCTM(bitmapRef, scale, scale); CGContextDrawImage(bitmapRef, extent, bitmapImage); // 2.保存bitmap图片 CGImageRef scaledImage = CGBitmapContextCreateImage(bitmapRef); CGContextRelease(bitmapRef); CGImageRelease(bitmapImage); return [UIImage imageWithCGImage:scaledImage]; } - (void)viewWillAppear:(BOOL)animated { [super viewWillAppear:animated]; self.navigationController.navigationBar.barStyle = UIBarStyleBlack; [self.navigationController.navigationBar setBackgroundImage:[UIImage new] forBarMetrics:UIBarMetricsDefault]; [self.navigationController.navigationBar setShadowImage:[UIImage new]]; } - (void)viewWillDisappear:(BOOL)animated { [super viewWillDisappear:animated]; [self.navigationController.navigationBar setBackgroundImage:nil forBarMetrics:UIBarMetricsDefault]; [self.navigationController.navigationBar setShadowImage:nil]; self.navigationController.navigationBar.barStyle = UIBarStyleDefault; } - (void)backClick { [self.navigationController popViewControllerAnimated:YES]; } - (IBAction)share:(id)sender { SharePopViewController *shareVC = [[SharePopViewController alloc] init]; shareVC.delegate = self; [self presentViewController:shareVC animated:NO completion:nil]; } - (void)shareWxSession { NSString *description = self.type == 1 ? @"找模特、艺人做商演;找空姐、校花做朋友。" : @"更多商演订单,视频面试可收取佣金,小姐妹们快来注册。"; [self shareToWechat:WXSceneSession withTitle:self.type == 1 ? @"千模通告" : @"千模模特版" description:description url:shareUrl(@(self.type), [[NSUserDefaults standardUserDefaults] objectForKey:@"qrcode"])]; } - (void)shareWxTimeline { NSString *description = self.type == 1 ? @"千模通告,找模特、艺人做商演;找空姐、校花做朋友。" : @"千模模特版,更多商演订单,视频面试可收取佣金,小姐妹们快来注册。"; [self shareToWechat:WXSceneTimeline withTitle:description description:description url:shareUrl(@(self.type), [[NSUserDefaults standardUserDefaults] objectForKey:@"qrcode"])]; } - (void)shareToWechat:(enum WXScene)scene withTitle:(NSString *)title description:(NSString *)description url:(NSString *)url { SendMessageToWXReq *req = [[SendMessageToWXReq alloc] init]; req.bText = NO; req.scene = scene; WXMediaMessage *urlMessage = [WXMediaMessage message]; urlMessage.title = title; urlMessage.description = description; [urlMessage setThumbImage:[UIImage imageNamed:@"share_icon"]]; WXWebpageObject *webObj = [WXWebpageObject object]; webObj.webpageUrl = url; urlMessage.mediaObject = webObj; req.message = urlMessage; [WXApi sendReq:req]; } @end