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支付方案 正文: 一.常见的支付方案简介 在微信支付中 微 ...
随机推荐
- 160809225-叶桦汀《C语言程序设计》实验报告
#include<stdio.h> int main() { int a,b,c,t; printf("请输入三个整数"); scanf("%d%d%d&qu ...
- C# 属性和索引
//用索引取一个记录中的各项 using system; class IndexerRecord{ private string[] data= new string [6]; private str ...
- (原)android中的动画(二)
帧动画的使用需要在xml文件中指定每一帧所对应的图片 animation-list写法如下: <?xml version="1.0" encoding="utf-8 ...
- 14 BasicHashTable基本哈希表类(一)——Live555源码阅读(一)基本组件类
这是Live555源码阅读的第一部分,包括了时间类,延时队列类,处理程序描述类,哈希表类这四个大类. 本文由乌合之众 lym瞎编,欢迎转载 http://www.cnblogs.com/oloroso ...
- UICollectionView + AFNetWorking 异步加载,局部刷新.
最近在做的项目需要cell里面的数据需要和后台实时交互.而collectionview reload会整体刷新. //m层 发送通知 [[NSNotificationCenter defaultCen ...
- linux 命令free -m 命令结果分析
free -m 命令详解 free -m 分析系统内存使用情况:
- Java对象访问 类的静态变量
Java类的静态变量用对象和类名都能访问,一般用类名,但如果用对象来访问静态变量呢,有何种效果? 测试一下: package JavaTest; public class test{ public s ...
- Nagios+zabbix+ganglia的相关参数分析和优缺点介绍
转自: http://blog.csdn.net/messiaDemo/article/details/52046822?utm_source=itdadao&utm_medium=refer ...
- word to word
Question: For each word, you can get a list of neighbor words by calling getWords(String), find all ...
- google 语音api
mdeia.Source = new Uri("http://translate.google.cn/translate_tts?ie=UTF-8&q=你好&tl=zh-CN ...