123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130 |
- //
- // ShareLiveDisplayView.m
- // KulexiuForStudent
- //
- // Created by 王智 on 2022/9/21.
- //
- #import "ShareLiveDisplayView.h"
- #import "KSQRCreateManager.h"
- @interface ShareLiveDisplayView ()<UIGestureRecognizerDelegate>
- @property (weak, nonatomic) IBOutlet UIImageView *teacherAvatar;
- @property (weak, nonatomic) IBOutlet UIView *statusView;
- @property (weak, nonatomic) IBOutlet UIImageView *studentAvatar;
- @property (weak, nonatomic) IBOutlet UILabel *tipsLabel;
- @property (weak, nonatomic) IBOutlet UILabel *referrerLabel;
- @property (weak, nonatomic) IBOutlet UIImageView *qrCodeView;
- @property (weak, nonatomic) IBOutlet UIView *referrerView;
- @property (nonatomic, copy) ShareCallback callback;
- @end
- @implementation ShareLiveDisplayView
- - (void)awakeFromNib {
- [super awakeFromNib];
- // [self addGesture];
- CAGradientLayer *layer = [self createGradientLayerFromColor:HexRGB(0xFF598E) startPoint:CGPointMake(0.5, 0) endColor:HexRGB(0xFD2D55) endPoint:CGPointMake(0.5, 1) bounds:CGRectMake(0, 0, 72, 24)];
- layer.cornerRadius = 12.0f;
- layer.masksToBounds = YES;
- [self.statusView.layer addSublayer:layer];
-
- CAGradientLayer *referrerLayer = [self createGradientLayerFromColor:HexRGB(0xBAFFE7) startPoint:CGPointMake(1, 0.5) endColor:HexRGB(0xC0DCFF) endPoint:CGPointMake(0, 0.5) bounds:CGRectMake(0, 0, KPortraitWidth - 30, 58)];
- referrerLayer.cornerRadius = 9.0f;
- referrerLayer.masksToBounds = YES;
- [self.referrerView.layer addSublayer:referrerLayer];
-
- }
- - (void)addGesture {
- UITapGestureRecognizer *gesture = [[UITapGestureRecognizer alloc] init];
- [gesture addTarget:self action:@selector(hideView)];
- [self addGestureRecognizer:gesture];
- }
- + (instancetype)shareInstance {
- ShareLiveDisplayView *view = [[[NSBundle mainBundle] loadNibNamed:@"ShareLiveDisplayView" owner:nil options:nil] firstObject];
- view.frame = CGRectMake(0, 0, KPortraitWidth, KPortraitHeight);
- return view;
- }
- - (void)configWithTeacherAvatar:(NSString *)teacherAvatarUrl teacherName:(NSString *)teacherName qrUrl:(NSString *)qrUrl {
- [self.teacherAvatar sd_setImageWithURL:[NSURL URLWithString:[teacherAvatarUrl getUrlEndcodeString]] placeholderImage:[UIImage imageNamed:USERDEFAULT_LOGO]];
- UIImage *codeImage = [KSQRCreateManager createQRCodeWithUrl:qrUrl displayImage:nil scaleSize:89];
- [self.qrCodeView setImage:codeImage];
- self.tipsLabel.text = [NSString stringWithFormat:@"主讲人:%@", [NSString returnNoNullStringWithString:teacherName]];
- [self.studentAvatar sd_setImageWithURL:[NSURL URLWithString:UserDefault(AvatarUrlKey)] placeholderImage:[UIImage imageNamed:USERDEFAULT_LOGO]];
- self.referrerLabel.text = [NSString stringWithFormat:@"%@ 为您推荐",[NSString returnNoNullStringWithString:UserDefault(NicknameKey)]];
- }
- - (void)shareActionCallback:(ShareCallback)callback {
- if (callback) {
- self.callback = callback;
- }
- }
- - (void)showShareView {
- [[NSObject getKeyWindow] addSubview:self];
- }
- - (void)showShareViewInView:(UIView *)displayView {
- if (!displayView) {
- return;
- }
- [displayView addSubview:self];
- }
- - (void)hideView {
- [self removeFromSuperview];
- }
- - (IBAction)saveImage:(id)sender {
- if (self.callback) {
- self.callback(SHARETYPE_SAVE);
- }
- }
- - (IBAction)shareOutApp:(id)sender {
- if (self.callback) {
- self.callback(SHARETYPE_SHAREOUT);
- }
- }
- - (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch {
- if ([touch.view isDescendantOfView:self.containerView]) {
- return NO;
- }
- return YES;
- }
- - (CAGradientLayer *)createGradientLayerFromColor:(UIColor *)fromColor startPoint:(CGPoint)startPoint endColor:(UIColor *)endColor endPoint:(CGPoint)endPoint bounds:(CGRect)bounds {
- CAGradientLayer *gradientLayer = [CAGradientLayer layer];
- gradientLayer.colors = @[(__bridge id)fromColor.CGColor, (__bridge id)endColor.CGColor];
- gradientLayer.startPoint = startPoint;
- gradientLayer.endPoint = endPoint;
- gradientLayer.frame = bounds;
- gradientLayer.locations = @[@(0),@(1.0f)];
- return gradientLayer;
- }
- /*
- // Only override drawRect: if you perform custom drawing.
- // An empty implementation adversely affects performance during animation.
- - (void)drawRect:(CGRect)rect {
- // Drawing code
- }
- */
- @end
|