短视频系统源代码,iOS开发之实现点击图片放大3D效果

软件工具
0 688
 
@interface FirmwareViewController ()
 
@property (strong, nonatomic)  UIImageView *tipImage;
 
@implementation FirmwareViewController
{
    UIView *background;
}
- (void)viewDidLoad {
    [super viewDidLoad];
    //点击图片放大
    _tipImage.userInteractionEnabled = YES;
    //添加点击手势
    UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(tapAction)];
    [_tipImage addGestureRecognizer:tapGesture];
 
}
#pragma mark - 实现点击图片放大功能
//点击图片后的方法(即图片的放大全屏效果)
- (void) tapAction{
    [self.navigationController setNavigationBarHidden:YES animated:YES];
    //创建一个黑色背景
    //初始化一个用来当做背景的View。
    UIView *bgView = [[UIView alloc]initWithFrame:CGRectMake(0, 0, ScreenWidth, ScreenHeight)];
    background = bgView;
    [bgView setBackgroundColor:[UIColor blackColor]];
    [self.view addSubview:bgView];
    
    //创建显示图像的视图
    //初始化要显示的图片内容的imageView
    UIImageView *imgView = [[UIImageView alloc] init];
    
    //根据设备类型显示相应图片
    if ([BluetoothDataManage shareInstance].deviceType == 0) {
        //要显示的图片,即要放大的图片
        [imgView setImage:[UIImage imageNamed:@"updateFirmwareTip0"]];
    }else{
        [imgView setImage:[UIImage imageNamed:@"updateFirmwareTip"]];
    }
    [bgView addSubview:imgView];
    [imgView mas_makeConstraints:^(MASConstraintMaker *make) {
        make.size.mas_equalTo(CGSizeMake(ScreenHeight,ScreenWidth));
        make.centerX.equalTo(self.view.mas_centerX);
        make.centerY.equalTo(self.view.mas_centerY);
    }];
    imgView.transform=CGAffineTransformMakeRotation(M_PI_2);
    imgView.userInteractionEnabled = YES;
    //添加点击手势(即点击图片后退出全屏)
    UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(closeView)];
    [imgView addGestureRecognizer:tapGesture];
    
    [self shakeToShow:bgView];//放大过程中的动画
}
-(void)closeView{
    [background removeFromSuperview];
    [self.navigationController setNavigationBarHidden:NO animated:nil];
}
//放大过程中出现的缓慢动画
- (void) shakeToShow:(UIView*)aView{
    CAKeyframeAnimation* animation = [CAKeyframeAnimation animationWithKeyPath:@"transform"];
    animation.duration = 0.5;
    NSMutableArray *values = [NSMutableArray array];
    [values addObject:[NSValue valueWithCATransform3D:CATransform3DMakeScale(0.1, 0.1, 0.1)]];
    [values addObject:[NSValue valueWithCATransform3D:CATransform3DMakeScale(1.0, 1.0, 1.0)]];
    animation.values = values;
    [aView.layer addAnimation:animation forKey:nil];
}


精选帖子
DAWN 融资3300万美金,下一个挖矿空投大项目类似grass 240
Teneo融资上千万美元,类似小草Grass挂机项目 259
Android 标枪定位 v2.11.3 免Root实现虚拟定位 302
Windows11 轻松设置 v1.10 绿色版 211
Android 海螺问问 Ghat GPT v2.30.0 免费AI助手 291
Android 海绵音乐 v2.33 免费AI音乐软件 228
Android 换脸变装视频秀 v1.2.4 美女视频AI换脸 204
Android 配音鸭文字转语音 v1.6.0登陆解锁会员 140
Android 配音工厂 v1.0.8 解锁会员版 388
热门帖子
Android 标枪定位 v2.11.3 免Root实现虚拟定位 302
Android 海螺问问 Ghat GPT v2.30.0 免费AI助手 291
Teneo融资上千万美元,类似小草Grass挂机项目 259
DAWN 融资3300万美金,下一个挖矿空投大项目类似grass 240
Android 海绵音乐 v2.33 免费AI音乐软件 228
Windows11 轻松设置 v1.10 绿色版 211
Android 换脸变装视频秀 v1.2.4 美女视频AI换脸 204
Ai一键生成影视解说视频,仅需十秒即可完成,多平台分发,轻松日入1000+ 154
Android 配音鸭文字转语音 v1.6.0登陆解锁会员 140