205 lines
6.0 KiB
Objective-C
205 lines
6.0 KiB
Objective-C
//
|
|
// LoadAlterView.m
|
|
// ProductApp
|
|
//
|
|
// Created by 工作 on 2024/6/21.
|
|
//
|
|
|
|
#import "LoadAlterView.h"
|
|
#import <libpag/PAGView.h>
|
|
|
|
static LoadAlterView *viewAlter;
|
|
@interface LoadAlterView ()
|
|
///
|
|
@property (nonatomic , strong) UIView *viewback;
|
|
///
|
|
@property (nonatomic , strong) UIImageView *imgvback;
|
|
///
|
|
@property (nonatomic , strong) PAGView *pagView;
|
|
|
|
///
|
|
@property (nonatomic , strong) UILabel *lbname;
|
|
|
|
///
|
|
@property (nonatomic , strong) NSString *title;
|
|
///
|
|
@property (nonatomic , assign) CGSize vsize;
|
|
|
|
///
|
|
@property (nonatomic , strong) NSTimer *timer;
|
|
@end
|
|
|
|
@implementation LoadAlterView
|
|
-(void)removePag
|
|
{
|
|
if(self.pagView.isPlaying)
|
|
{
|
|
[self.pagView stop];
|
|
[self.pagView freeCache];
|
|
}
|
|
}
|
|
-(id)initWithFrame:(CGRect)frame
|
|
{
|
|
if(self = [super initWithFrame:frame])
|
|
{
|
|
[self setBackgroundColor:RGBACOLOR(0, 0, 0, 0.3)];
|
|
|
|
|
|
UIView *viewback = [[UIView alloc] init];
|
|
[viewback setBackgroundColor:RGBCOLOR(34, 34, 34)];
|
|
[self addSubview:viewback];
|
|
[viewback mas_makeConstraints:^(MASConstraintMaker *make) {
|
|
make.center.equalTo(self);
|
|
make.width.offset(280);
|
|
make.height.offset(200);
|
|
}];
|
|
[viewback.layer setMasksToBounds:YES];
|
|
[viewback.layer setCornerRadius:20];
|
|
_viewback = viewback;
|
|
|
|
UIImageView *imgvback = [[UIImageView alloc] init];
|
|
// [imgvback setImage:[UIImage imageNamed:@"loading"]];
|
|
[viewback addSubview:imgvback];
|
|
[imgvback mas_makeConstraints:^(MASConstraintMaker *make) {
|
|
make.width.height.equalTo(viewback.mas_width).multipliedBy(0.23);
|
|
make.centerX.equalTo(viewback);
|
|
make.centerY.equalTo(viewback).offset(-15);
|
|
}];
|
|
_imgvback = imgvback;
|
|
|
|
|
|
// CABasicAnimation *animation;
|
|
// animation = [CABasicAnimation animationWithKeyPath:@"transform.rotation.z"];
|
|
// animation.fromValue = [NSNumber numberWithFloat:0];
|
|
// animation.toValue = [NSNumber numberWithFloat:((360*M_PI)/180)*2]; // 旋转两圈
|
|
// animation.duration = 3.0; // 旋转时间
|
|
// animation.repeatCount = HUGE_VALF; // 无限次数的重复
|
|
// // 将动画添加到图层并开始动画
|
|
// [imgvback.layer addAnimation:animation forKey:@"rotationAnimation"];
|
|
|
|
|
|
NSString *strpath = [[NSBundle mainBundle] pathForResource:@"load_start" ofType:@"pag"];
|
|
PAGView *pagView = [[PAGView alloc] initWithFrame:CGRectMake(0, 0, 115, 115)];
|
|
[viewback addSubview:pagView];
|
|
[pagView mas_makeConstraints:^(MASConstraintMaker *make) {
|
|
make.width.height.offset(115);
|
|
make.center.equalTo(viewback);
|
|
}];
|
|
PAGFile* pagFile = [PAGFile Load:strpath];
|
|
[pagView setComposition:pagFile];
|
|
[pagView setRepeatCount:0];
|
|
[pagView play];
|
|
_pagView = pagView;
|
|
|
|
|
|
|
|
UILabel *lbname = [[UILabel alloc] init];
|
|
[lbname setText:@"链接解析中"];
|
|
[lbname setTextColor:RGBCOLOR(102, 102, 102)];
|
|
[lbname setTextAlignment:NSTextAlignmentLeft];
|
|
[lbname setFont:[UIFont systemFontOfSize:14]];
|
|
[viewback addSubview:lbname];
|
|
[lbname mas_makeConstraints:^(MASConstraintMaker *make) {
|
|
make.centerX.equalTo(viewback);
|
|
make.top.equalTo(imgvback.mas_bottom).offset(15);
|
|
}];
|
|
_lbname = lbname;
|
|
|
|
self.timer = [NSTimer scheduledTimerWithTimeInterval:180 target:self selector:@selector(timedismis) userInfo:nil repeats:NO];
|
|
|
|
}
|
|
return self;
|
|
}
|
|
|
|
-(void)setTitle:(NSString *)title
|
|
{
|
|
self.lbname.text = title;
|
|
if(title.length==0)
|
|
{
|
|
[self.imgvback mas_updateConstraints:^(MASConstraintMaker *make) {
|
|
make.centerY.equalTo(self.viewback);
|
|
}];
|
|
}
|
|
else
|
|
{
|
|
[self.imgvback mas_updateConstraints:^(MASConstraintMaker *make) {
|
|
make.centerY.equalTo(self.viewback).offset(-15);
|
|
}];
|
|
}
|
|
}
|
|
-(void)setVsize:(CGSize)vsize
|
|
{
|
|
[self.viewback mas_updateConstraints:^(MASConstraintMaker *make) {
|
|
make.width.offset(vsize.width);
|
|
make.height.offset(vsize.height);
|
|
}];
|
|
}
|
|
-(void)timedismis
|
|
{
|
|
dispatch_async(dispatch_get_main_queue(), ^{
|
|
if(viewAlter){
|
|
[viewAlter removePag];
|
|
// [viewAlter.imgvback.layer removeAnimationForKey:@"rotationAnimation"];
|
|
[viewAlter removeFromSuperview];
|
|
viewAlter = nil;
|
|
}
|
|
});
|
|
}
|
|
+(void)showView:(UIView *)view frame:(CGSize)size title:(NSString *)title
|
|
{
|
|
if(viewAlter)
|
|
{
|
|
if(viewAlter.timer)
|
|
{
|
|
[viewAlter.timer invalidate];
|
|
viewAlter.timer = nil;
|
|
}
|
|
[viewAlter removePag];
|
|
// [viewAlter.imgvback.layer removeAnimationForKey:@"rotationAnimation"];
|
|
[viewAlter removeFromSuperview];
|
|
viewAlter = nil;
|
|
}
|
|
LoadAlterView *viewshow = [[LoadAlterView alloc] initWithFrame:CGRectMake(0, 0, view.width, view.height)];
|
|
[view addSubview:viewshow];
|
|
viewshow.vsize = size;
|
|
viewshow.title = title;
|
|
viewAlter = viewshow;
|
|
}
|
|
+(void)showView
|
|
{
|
|
if(viewAlter)
|
|
{
|
|
[viewAlter removePag];
|
|
// [viewAlter.imgvback.layer removeAnimationForKey:@"rotationAnimation"];
|
|
[viewAlter removeFromSuperview];
|
|
viewAlter = nil;
|
|
}
|
|
LoadAlterView *viewshow = [[LoadAlterView alloc] initWithFrame:CGRectMake(0, 0, UISCREEN_WIDTH,UISCREEN_HEIGHT)];
|
|
[[UIApplication sharedApplication].delegate.window addSubview:viewshow];
|
|
viewshow.vsize = CGSizeMake(200, 150);
|
|
viewshow.title = @"";
|
|
viewAlter = viewshow;
|
|
}
|
|
+(void)refTitle:(NSString *)title
|
|
{
|
|
if(viewAlter)
|
|
{
|
|
viewAlter.title = title;
|
|
}
|
|
}
|
|
|
|
+(void)dismis
|
|
{
|
|
dispatch_async(dispatch_get_main_queue(), ^{
|
|
if(viewAlter){
|
|
|
|
[viewAlter removePag];
|
|
// [viewAlter.imgvback.layer removeAnimationForKey:@"rotationAnimation"];
|
|
[viewAlter removeFromSuperview];
|
|
viewAlter = nil;
|
|
}
|
|
});
|
|
}
|
|
|
|
@end
|