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

  

时间: 2024-11-17 00:20:26

IOS,Objective-C,相册功能的实现。的相关文章

iOS 下的相册与图片处理

iOS 下的相册与图片处理 需求 很多公司项目中都会使用到相册,以及相机,保存图片,从相册中选取图片等等操作.本文将详细介绍该功能如何实现优化,以及使用一些优秀的第三方库来辅助完成我们的需求. photos framework 的使用 Photos Framework reference Classes PHAdjustmentData /* When a user edits an asset, Photos saves a PHAdjustmentData object along with

iOS摄像头和相册-UIImagePickerController-浅析

转自:http://www.2cto.com/kf/201406/312257.html 在一些应用中,我们需要用到iOS设备的摄像头进行拍照,视频.并且从相册中选取我们需要的图片或者视频. 关于iOS摄像头和相册的应用,可以使用UIImagePickerController类来完成控制. 关于UIImagePickerController的相关知识, 如下: iOS的一些设备上都安装了摄像头.现在绝大多数都有了. 在编程中,我们是用相应的东西来进行照相,录像等功能. 一.UIImagePick

iOS摄像头和相册

-UIImagePickerController-浅析 (2013-04-05 19:16:26) 转载▼ 标签: uiimagepickercontrol ios摄像头 ios相册 iphone 分类: 帮助文档 在一些应用中,我们需要用到iOS设备的摄像头进行拍照,视频.并且从相册中选取我们需要的图片或者视频. 关于iOS摄像头和相册的应用,可以使用UIImagePickerController类来完成控制. 关于UIImagePickerController的相关知识, 如下: iOS的一

IOS开发之支付功能概述

前言:本随笔将对IOS开发的支付功能进行一个概述. 内容大纲: 一.常见的支付方案简介 二.第三方支付SDK 三.苹果官方支付方案 四.Web支付方案 正文: 一.常见的支付方案简介 在微信支付中 微信支付的网址是: https://pay.weixin.qq.com/wiki/doc/api/index.html 进去之后,我们可以看到网页,但我接下来主要讲的是app支付 app支付的过程:商业app通过集成微信SDK,用户解析后跳转到微信内软件支付的过程. 点进去app支付: 我们可以看到A

iOS 自带定位功能

第一步:导入头文件 #import <CoreLocation/CoreLocation.h> #import <CoreLocation/CLLocationManagerDelegate.h> 第二步:设置代理 CLLocationManagerDelegate 第三步:创建一个属性 @property(nonatomic, strong) CLLocationManager *locationManager; 第四步:初始化     //定位服务管理对象初始化     _lo

关于QQ空间相册功能的构想与简单实现

QQ空间上传照片对其可以分类,形成不同的相册,这对于用户体验来说是很不错的,如果用户只能上传不加以分类,那么用户体验会很差. 下面是自己关于相册功能实现的一些简单看法: 首先,是创建相册,可以用panel将控件隐藏,给用户更好体验. <asp:Button ID="creatphoto" runat="server" OnClick="creatphoto_Click" Text="创建相册" /> <asp

iOS 自带刷新功能

这里只介绍UIRefreshControl的使用方法,虽然EGO已经用得挺舒服的了,但是官方给的.毕竟还是蛮简单的 ================================================== UIRefreshControl 具有一个默认的高度和宽度 一旦创建,便自动管理.只有当用户用力刷新才能刷新,尤其...那朵菊花,用力越大,转速越快,感觉还不错哦.(瞬间...邪恶了) 下面介绍一下如何使用:     self.refreshControl = [[UIRefres

iOS略记小功能

在我们进行开发工程的时候,有些小的功能能提高用户的体验,但是这些小的功能记忆起来比较麻烦,很容易忘记,在这里我整理一下自己使用过的小功能罗列出来. 一.项目在设备上得图标及名称的设定 1).图标:在项目中把你想要用得项目图标添加到项目中并且改名为icon(必须为png格式). 2).名称:在项目的Info.plist文件中有Key为Bundle display name一行的Value值改为自己所需要的名称即可 二.在程序启动还未进入程序起始界面前展示的Image 在工程选项中的General中

iOS 程序插件及功能动态更新思路

所用框架及语言 iOS客户端-Wax(开发愤怒的小鸟的连接Lua 和 Objc的框架),Lua,Objc, 服务端-Java(用于返回插件页面) 工具框架链接地址:Wax - https://github.com/probablycorey/wax  Netty - https://netty.io/  用做Http服务器,返回页面 由于Lua脚本语言,不需要编译即可运行,这点是我的这个思路可以执行的大前提,再加上苹果允许像Lua这样的脚本的存在,这一思路才能得以实现.个人感觉这一思路有点类似于

YS&ldquo;本地相册&rdquo;功能存在反射型XSS漏洞【中危】

这是在测试YS"本地相册"功能时发现的一个反射型XSS,自己在安全测试过程中也发现过不少XSS漏洞,唯独这个的发现过程有点区别. 在此之前,我在测试另外一个模块的功能接口的时候发现了一个反射型XSS,当我在测试"本地相册"这个功能的时候,当我用burp拦截到HTTP请求时,发现该请求有3个参数,仔细观察,发现这3个参数居然和之前有XSS漏洞的接口的参数是一模一样的,但是有区别的地方:两者接口名称(action)是不一样的,两者参数个数不一样,之前的是4个,"