@property (nonatomic, strong) UIImageView *smallImageView;// 小图视图 @property (nonatomic, strong) UIImageView *bigImageView;// 大图视图 @property (nonatomic, strong) UIView *bgView;// 阴影视图
- (void)viewDidLoad {
[super viewDidLoad];
// 小图
self.smallImageView = [[UIImageView alloc] initWithFrame:CGRectMake((SCREENWIDTH - 100)/2, (SCREENHEIGHT - 100)/2, 100, 100)];
self.smallImageView.image = [UIImage imageNamed:@"icon"];
// 添加点击响应
self.smallImageView.userInteractionEnabled = YES;
UITapGestureRecognizer *imageTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(viewBigImage)];
[self.smallImageView addGestureRecognizer:imageTap];
[self.view addSubview:self.smallImageView];
}
// 大图视图
- (UIImageView *)bigImageView {
if (nil == _bigImageView) {
_bigImageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, (SCREENHEIGHT - SCREENWIDTH) / 2, SCREENWIDTH, SCREENWIDTH)];
[_bigImageView setImage:self.smallImageView.image];
// 设置大图的点击响应,此处为收起大图
_bigImageView.userInteractionEnabled = YES;
UITapGestureRecognizer *imageTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(dismissBigImage)];
[_bigImageView addGestureRecognizer:imageTap];
}
return _bigImageView;
}
// 阴影视图
- (UIView *)bgView {
if (nil == _bgView) {
_bgView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, SCREENWIDTH, SCREENHEIGHT)];
_bgView.backgroundColor = [UIColor colorWithWhite:0 alpha:0.5];
// 设置阴影背景的点击响应,此处为收起大图
_bgView.userInteractionEnabled = YES;
UITapGestureRecognizer *bgTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(dismissBigImage)];
[_bgView addGestureRecognizer:bgTap];
}
return _bgView;
}
// 显示大图
- (void)viewBigImage {
[self bigImageView];// 初始化大图
// 让大图从小图的位置和大小开始出现
CGRect originFram = _bigImageView.frame;
_bigImageView.frame = self.smallImageView.frame;
[self.view addSubview:_bigImageView];
// 动画到大图该有的大小
[UIView animateWithDuration:0.3 animations:^{
// 改变大小
_bigImageView.frame = originFram;
// 改变位置
_bigImageView.center = self.view.center;// 设置中心位置到新的位置
}];
// 添加阴影视图
[self bgView];
[self.view addSubview:_bgView];
// 将大图放到最上层,否则会被后添加的阴影盖住
[self.view bringSubviewToFront:_bigImageView];
}
// 收起大图
- (void)dismissBigImage {
[self.bgView removeFromSuperview];// 移除阴影
// 将大图动画回小图的位置和大小
[UIView animateWithDuration:0.3 animations:^{
// 改变大小
_bigImageView.frame = self.smallImageView.frame;
// 改变位置
_bigImageView.center = self.smallImageView.center;// 设置中心位置到新的位置
}];
// 延迟执行,移动回后再消灭掉
double delayInSeconds = 0.3;
__block ViewController* bself = self;
dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(delayInSeconds * NSEC_PER_SEC));
dispatch_after(popTime, dispatch_get_main_queue(), ^(void){
[bself.bigImageView removeFromSuperview];
bself.bigImageView = nil;
bself.bgView = nil;
});
}
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有