iOS,Objective-C,相册功能的实现。
#import "ViewController.h" #define kuan [UIScreen mainScreen].bounds.size.width
#define gao [UIScreen mainScreen].bounds.size.height
@interface ViewController ()<UIScrollViewDelegate>
@property (weak, nonatomic) IBOutlet UIScrollView *huaKuang; @end @implementation ViewController - (void)viewDidLoad {
[super viewDidLoad];
//设置contentSize
_huaKuang.contentSize=CGSizeMake((kuan)*4, gao);
_huaKuang.backgroundColor=[UIColor blackColor];
//设置分页
_huaKuang.pagingEnabled=YES;
//隐藏滚动条
//滚动时是否显示水平滚动条
_huaKuang.showsHorizontalScrollIndicator=NO;
//滚动时是否显示垂直滚动条
_huaKuang.showsVerticalScrollIndicator=NO;
//设置代理,需要遵循代理协议<UIScrollViewDelegate>,写在@interface ViewController ()的后面
_huaKuang.delegate=self;
//添加子视图,因为是多个所以写了一个方法来实现添加
[self tianJianZiShiTu];
}
-(void)tianJianZiShiTu
{
//假如有六个图片,就要创建六个UIScrollView和六个UIImageView,并且找到六个图片
for(int i=0;i<3;i++)
{
//创建UIScrollView
//为了区分开不同的照片加一个20黑边,需要设置ScrollViewscroll View中的Left和View中的Width
UIScrollView *uisv=[[UIScrollView alloc] initWithFrame:CGRectMake((kuan+20)*i, 0, kuan, gao)];
//把创建完成的添加到总的那个UIScrollView上
[_huaKuang addSubview:uisv];
//创建UIImageView
UIImageView *uiiv=[[UIImageView alloc] initWithFrame:CGRectMake(0, 0, kuan, gao)];
//把创建的UIImageView添加到UIScrollView中
[uisv addSubview:uiiv];
//设置UIImageView的图片
NSString *imageName = [NSString stringWithFormat:@"new_feature_%d",i + 1];
uiiv.image=[UIImage imageNamed:imageName];
//设置tag值
uiiv.tag=1000;
//设置UIScrollView的代理
uisv.delegate=self;
//设置缩放范围
uisv.minimumZoomScale=0.5;
uisv.maximumZoomScale=1.5;
//定义点击事件
UITapGestureRecognizer *tap=[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(dianJiShiJian:)];
//设置有效点击数(就是双击)
tap.numberOfTapsRequired=2;
//添加到UIScrollView中
[uisv addGestureRecognizer:tap];
}
}
-(void)dianJiShiJian:(UITapGestureRecognizer *)tap
{
//获取点击事件的view
UIScrollView *uisv1=(UIScrollView *)tap.view;
if(uisv1.zoomScale!=1.0)
{
[uisv1 setZoomScale:1.0 animated:YES];
return ;
}
CGPoint location=[tap locationInView:tap.view];
CGRect rect=CGRectMake(location.x-100, location.y-100, 200, 200);
[uisv1 zoomToRect:rect animated:YES];
}
//指定缩放的视图
-(UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView{
if (scrollView == _huaKuang) {
return nil;
}
UIImageView *imageView = (UIImageView *)[scrollView viewWithTag:1000];
return imageView;
} //滚动结束,把所有的缩放视图的缩放比例置为1.0
-(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView{
if (scrollView == _huaKuang) {
for (id obj in _huaKuang.subviews) {
if ([obj isKindOfClass:[UIScrollView class]]) {
UIScrollView *scaleSC = (UIScrollView *)obj;
scaleSC.zoomScale = 1.0;
}
}
}
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
} @end
iOS,Objective-C,相册功能的实现。的更多相关文章
- JS中调用android和ios系统手机打开相机并可选择相册功能
编写不易,如有转载,请声明出处: 梦回河口:http://blog.csdn.net/zxc514257857/article/details/57626154 实现android手机打开相机选择相册 ...
- iOS摄像头和相册-UIImagePickerController常用操作
在一些应用中,我们需要用到iOS设备的摄像头进行拍照,视频.并且从相册中选取我们需要的图片或者视频. 关于iOS摄像头和相册的应用,可以使用UIImagePickerController类来完成控制. ...
- iOS摄像头和相册-UIImagePickerController-浅析
转载自:http://blog.sina.com.cn/s/blog_7b9d64af0101cfd9.html 在一些应用中,我们需要用到iOS设备的摄像头进行拍照,视频.并且从相册中选取我们需要的 ...
- ios中从相册:相机中获取图片信息
ios中从相册/相机中获取图片信息 从相册中获取图片的信息 UIImagePickerController *imgPickView = [[UIImagePickerController alloc ...
- iOS摄像头和相册-UIImagePickerController-浅析(转)
iOS摄像头和相册-UIImagePickerController-浅析(转) 转自: http://blog.sina.com.cn/s/blog_7b9d64af0101cfd9.html 在一些 ...
- 转:HTML5页面如何在手机端浏览器调用相机、相册功能
HTML5页面如何在手机端浏览器调用相机.相册功能 开发微信端浏览器访问的HTML5的页面,页面中有一个<input id="input" type="file&q ...
- iOS摄像头和相册(转)
iOS摄像头和相册iOS 获取图片有三种方法1. 直接调用摄像头拍照 2. 从相册中选择 3. 从图库中选择 UIImagePickerController 是系统提供的用来获取图片和视频的接口: 用 ...
- HTML5页面如何在手机端浏览器调用相机、相册功能
最近在做一个公司的保险信息处理系统项目,开发微信端浏览器访问的HTML5的页面,页面中有一个<input id="input" type="file"/& ...
- php相册功能实现(包含php图片上传,后台管理,浏览和删除)教程例子
相册功能实现(包含php图片上传,后台管理,浏览和删除)教程例子包括五个部分: 一.相册首页 <html> <head> <meta charset="utf- ...
- iOS之开发支付功能概述
前言:本随笔将对IOS开发的支付功能进行一个概述. 内容大纲: 一.常见的支付方案简介 二.第三方支付SDK 三.苹果官方支付方案 四.Web支付方案 正文: 一.常见的支付方案简介 在微信支付中 微 ...
随机推荐
- [codeforces 339]E. Three Swaps
[codeforces 339]E. Three Swaps 试题描述 Xenia the horse breeder has n (n > 1) horses that stand in a ...
- java计算时间差
比如:现在是2016-03-26 13:31:40 过去是:2016-01-02 11:30:24 我现在要获得两个日期差,差的形式为:XX天XX小时XX分XX秒 方法一: DateFo ...
- linux下的/dev/shm目录
linux下的/dev/shm目录 linux中/dev目录下一般都是一些设备文件,例如磁盘.内存.摄像头等. /dev/shm这个目录是linux下一个利用内存虚拟出来的一个目录,这个目录中的文件都 ...
- net-snmp-5.7.3配置编译安装
net-snmp-5.7.3配置编译安装 [TOC] 先看一下系统环境 o@o-pc:~/work/_snmp/net-snmp-5.7.3$ uname -a Linux o-pc 3.16.0-3 ...
- UICollectionView + AFNetWorking 异步加载,局部刷新.
最近在做的项目需要cell里面的数据需要和后台实时交互.而collectionview reload会整体刷新. //m层 发送通知 [[NSNotificationCenter defaultCen ...
- java去除字符串中的空格、回车、换行符、制表符
import java.util.regex.Matcher; import java.util.regex.Pattern; /** * @author chzeze * 2016-11-07 */ ...
- php类与对象
1.类与对象 对象:实际存在该类事物中每个实物的个体.$a =new User(); 实例化后的$a 引用:php的别名,两个不同的变量名字指向相同的内容 封装: 把对象的属性和方法组织在一个类(逻辑 ...
- python wraps
用代码说明问题: def d(f): def _d(*args, **kwargs): print f.__name__, ' is called' f(*args, **kwargs) return ...
- 怎样搭建PHP开发环境
搭建PHP开发环境首先第一步要 下载开发环境 wampserver 下载sublime text 2 sublime使用技巧 1:安装漂亮的编程字体http://pan.baidu.com/s/1xM ...
- session的生命周期
Session存储在服务器端,一般为了防止在服务器的内存中(为了高速存取),Sessinon在用户访问第一次访问服务器时创建,需要注意只有访问JSP.Servlet等程序时才会创建Session,只访 ...