| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154 |
- //
- // ShareViewController.m
- // 千模
- //
- // Created by Drew on 2018/10/25.
- // Copyright © 2018 MUMEI. All rights reserved.
- //
- #import "ShareViewController.h"
- #import "SharePopViewController.h"
- #import <WXApi.h>
- @interface ShareViewController () <ShareDelegate>
- @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
|