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支付方案 正文: 一.常见的支付方案简介 在微信支付中 微 ...
随机推荐
- 我对windows消息机制的理解(参考深入浅出MFC,欢迎批评指正!!)
以消息为基础,以事件驱动之 程序的进行依靠外部消息来驱动,即:程序不断等待任何可能的输入,然后做判断,然后再做适当的处理. 消息输入:操作系统捕获,以消息形式进入程序.(操作系统通过其USERS模块中 ...
- 一起入门python5之for循环
昨天中午本来写了的,结果手贱了一下ctrl+x以后又去复制了别的东西.结果所有写的都没有了.蛋疼.继续写吧.今天来说for循环即条件判断>>> age = 20 #首先 ...
- HackerRank training-the-army
Description 有 \(n\) 个技能,每次可以通过一个巫师,将一个技能转化成另一个技能,问最有最多有多少不同的技能. Sol 网络流. 先说说我一开始非常 naive 的建图,将技能拆点,中 ...
- CodeVS 1344 线型网络
Sol 随机化算法+哈密顿路径. 好厉害的题...首先都会想到状压DP对吧,复杂度 \(O(n^2 2^n)\) . \(n=20\) exm?? \(10^8\) 有一种算法就是随机化算法 再调整 ...
- django xadmin 模板的定制
编辑新增等页面对应的modelform为ModelFormAdminView (xadmin.views.edit.ModelFormAdminView) 通过源码分析,新增对象的template属性 ...
- 在Navicat for MySQL中打开视图时,提示视图没有主键的问题
一直把视图理解为一个select语句而已,视图一般就是用于查询,不会通过视图来更新表或视图本身的数据,所以视图根本不需要什么主键.今天自己建了一个视图view_test: drop view if e ...
- HTML中属性ID和属性NAME有何区别?
今天出美工面试题的时候,David让我加上一道题:HTML中id和name的区别.一听对呀,HTML中id和name有什么区别,只是平时在用,倒没怎么想过,只是那么用了罢了,呵呵,其实在做网页的时候有 ...
- C#函数参数
当函数接受参数时,必须指定下属内容 函数在其定义中指定参数列表,以及这些参数的类型 在每个函数调用中匹配参数列表 参数匹配:当调用函数时,必须使参数与函数定义中指定的参数完全匹配,这意味着要匹配参数的 ...
- oracle异常记录
2015年9月14 1.在csdn论坛中看帖子,遇到的一个问题:ORA-01422 实际返回的行数超出请求的行数.
- LIGHTSWITCH 连接 MYSQL,中文字符不能保存----解决方法。
使用:dotConnect for MySQL () 作为 数据库连接的PROVIDER , 在 LIGHTSWITCH 中 引用外部的MYSQL 数据源. http://www.devart.co ...