文档章节

高仿QQ、微信用户图像处理

iOS赵师顺
 iOS赵师顺
发布于 2016/06/26 21:40
字数 413
阅读 6
收藏 0

// .h文件

 

#import <Foundation/Foundation.h>

#import <UIKit/UIKit.h>

 

@interface ImageDandleTool : NSObject

// 获取控件的坐标,传入用户图片

-(void)fullScreenWithUIView:(UIView *)view Image:(UIImage *)UserImage;

@end

 

// .m

#import "ImageDandleTool.h"

 

@interface ImageDandleTool ()<UIScrollViewDelegate>

 

@end

static CGRect oldFrame;

@implementation ImageDandleTool

 

-(void)fullScreenWithUIView:(UIView *)view Image:(UIImage *)UserImage{

    UIImage *image = UserImage;

    UIWindow *window = [UIApplication sharedApplication].keyWindow;

    UIScrollView *scrollView = [[UIScrollView alloc]initWithFrame:[UIScreen mainScreen].bounds];

    scrollView.maximumZoomScale = 1.5;

    scrollView.minimumZoomScale = 1.0;

    scrollView.bounces = NO;

    scrollView.delegate = self;

//    坐标系的转化,将控件的坐标转换成目标视图中的坐标;

    oldFrame = [view convertRect:view.bounds toView:window];

    scrollView.backgroundColor = [UIColor blackColor];

    scrollView.alpha = 0;

    UIImageView *imageView = [[UIImageView alloc]initWithFrame:oldFrame];

    imageView.image = image;

    imageView.tag = 1;

    [scrollView addSubview:imageView];

    [window addSubview:scrollView];

    //    添加点击手势;

    UITapGestureRecognizer *tap=[[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(fullScreenTapGR:)];

    [scrollView addGestureRecognizer: tap];

    [UIView animateWithDuration:0.3 animations:^{

        imageView.frame=CGRectMake(0,([UIScreen mainScreen].bounds.size.height-image.size.height*[UIScreen mainScreen].bounds.size.width/image.size.width)/2,[UIScreen mainScreen].bounds.size.width, image.size.height*[UIScreen mainScreen].bounds.size.width/image.size.width);

        scrollView.alpha=1;

    }

                     completion:^(BOOL finished) {

                     }];

    //    添加双击的手势;

    UITapGestureRecognizer *tapTwo = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(tapTwoAction:)];

    tapTwo.numberOfTapsRequired = 2;

    [scrollView addGestureRecognizer:tapTwo];

    //    当双击手势和单击手势共存的时候,只有没有检测到双击手势的时候,单击才有效;

    [tap requireGestureRecognizerToFail:tapTwo];

}

//双击手势触发的方法;

-(void)tapTwoAction:(UITapGestureRecognizer *)sender{

    UIScrollView *scrollView = (UIScrollView *)sender.view;

    if (scrollView.zoomScale <= 1.0) {

        [UIView animateWithDuration:0.3 animations:^{

            scrollView.zoomScale = 1.5;

        }];

    }else{

        [UIView animateWithDuration:0.3 animations:^{

            scrollView.zoomScale = 1.0;

        }];

    }

}

// 点击退回原来的图片;

-(void)fullScreenTapGR:(UITapGestureRecognizer*)tap{

    UIScrollView *backgroundView = (UIScrollView *)tap.view;

    UIImageView *imageView=(UIImageView*)[tap.view viewWithTag:1];

    [UIView animateWithDuration:0.3 animations:^{

        imageView.frame=oldFrame;

        backgroundView.alpha=0;

    }

                     completion:^(BOOL finished) {

                         [backgroundView removeFromSuperview];

                     }];

}

//返回要缩放的控件;

-(UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView{

    return [scrollView viewWithTag:1];

}

//只要进行缩放,就会执行的该方法,使图片居中;

-(void)scrollViewDidZoom:(UIScrollView *)scrollView{

    CGPoint cender = scrollView.center;

    if (scrollView.zoomScale >1) {

        cender.x = [UIScreen mainScreen].bounds.size.width/2 +((scrollView.zoomScale - 1) * [UIScreen mainScreen].bounds.size.width/2);

        cender.y = [UIScreen mainScreen].bounds.size.height/2;

    }

    [scrollView viewWithTag:1].center = cender;

}

 

© 著作权归作者所有

共有 人打赏支持
iOS赵师顺
粉丝 3
博文 74
码字总数 36150
作品 0
昌平
程序员
图片处理工具

Android7.0 完美适配——FileProvider 拍照裁剪全解析 适配 android7.0 中的拍照相册裁剪功能 使用 photoView 实现可点击放大到全屏显示的控件,效果类似于微信朋友圈点开看大图 使用 photoV...

掘金官方
2017/12/11
0
0
NideShop:基于Node.js+MySQL开发的微信小程序商城开源啦

高仿网易严选的微信小程序商城(微信小程序客户端) 界面高仿网易严选商城(主要是2016年wap版) 测试数据采集自网易严选商城 服务端api基于Node.js+ThinkJS+MySQL 计划添加基于Vue.js的后台管...

ch10mmt
2017/07/14
0
0
众神互娱棋牌游戏大厅房卡专售

  H5棋牌游戏在推出不到半年的时间迅速引爆市场,其中以联合五神兽:联合大厅、青龙大厅、白虎大厅、朱雀大厅、玄武大厅、麒麟大厅、长虹互娱、六六大厅为代表的H5棋牌游戏已经深受用户喜爱...

H5棋牌游戏开发
2017/12/06
0
0
iOS高仿QQ录音、智能语音诗歌、高仿微信图片浏览源码

iOS精选源码 好看实用的日期时间选择器--CCTimePicker 高仿QQ录音功能 QQ侧滑抽屉效果 MMActionSheet介绍(自定义的类似于微信的UIActionSheet弹出框组件) 智能语音查询诗歌 仿课程表表格效果...

sunnyaigd
2017/10/25
0
0
【转】高仿腾讯QQ终结版,超6

Tag: 项目介绍: 之前写过一篇关于高仿腾讯QQ的博客,不知道的看这:http://blog.csdn.net/htq/article/details/51840273 主要是从界面上高仿了腾讯QQ,在UI上基本上与腾讯QQ一模一样,但是...

2013020735
2016/11/16
591
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

HTTPS is easy

HTTPS is easy https://www.troyhunt.com/https-is-easy/ HTTPS is easy! In fact, it's so easy I decided to create 4 short videos around 5 minutes each to show people how to enable ......

openthings
26分钟前
0
0
bugList 2

用户端: 1. 上传文件时,当选择:彩色-A3-双面时,第二个图片有bug 应改为 和第一个图片的类型相同 2. 确认打印时,三个下拉选目前有bug 应改为:根据后台配置的商家,group by计算出不同城...

勇恒
29分钟前
2
0
keras cnn 网咯 mnist 分类

搭建貌似比tf是简单很多。。。。。 from keras.datasets import mnistfrom keras.utils import np_utilsfrom keras.models import Sequentialfrom keras.layers import Dense, Activat......

阿豪boy
32分钟前
0
0
解决 /var/run/nginx.pid failed

nginx: [error] open() "/var/run/nginx.pid" failed (2: No such file or directory) sudo nginx -c /etc/nginx/nginx.conf nginx -s reload...

驛路梨花醉美
33分钟前
0
0
nginx负载均衡-ssl原理-生成ssl密钥对-nginx配置ssl

nginx负载均衡: 1.创建配置文件 vim /usr/local/nginx/conf/vhost/load.conf #添加以下内容: upstream qq_com #名字自定义,借助此模块定义多个IP,后面...

ZHENG-JY
34分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部