iphone iPhone开发中如何将制作图片放大缩小代码实现案例
1:原文摘自:http://mobile.51cto.com/iphone-285108.htm
iPhone开发中如何将制作图片放大缩小案例是本文要介绍的内容,主要是来学习iphone开发中动画的制作,具体内容一起来看本文详解。在IPhone SDK开发范例大全中,有很多的范例码。
下面这段范例码,示范了两张图片的交换,以及放大缩小的动画
动画效果请参照下图
- #import <UIKit/UIKit.h>
- #define IMAGE_VIEW_1 100
- #define IMAGE_VIEW_2 101
- #define BIGRECT CGRectMake(0.0f, 0.0f, 320.0f, 435.0f)
- #define SMALLRECT CGRectMake(130.0f, 187.0f, 60.0f, 60.0f)
- @interface ToggleView: UIView
- {
- BOOL isOne;
- }
- @end
- @implementation ToggleView
- - (id) initWithFrame: (CGRect) aFrame;
- {
- self = [super initWithFrame:aFrame];
- // Load both views, make them non-interactive
- UIImageView *imgView1 = [[UIImageView alloc] initWithFrame:BIGRECT];
- imgView1.image = [UIImage imageNamed:@"one.png"];
- imgView1.userInteractionEnabled = NO;
- imgView1.tag = IMAGE_VIEW_1;
- UIImageView *imgView2 = [[UIImageView alloc] initWithFrame:SMALLRECT];
- imgView2.image = [UIImage imageNamed:@"two.png"];
- imgView2.userInteractionEnabled = NO;
- imgView2.tag = IMAGE_VIEW_2;
- // image 1 is in front of image 2 to begin
- [self addSubview:imgView2];
- [self addSubview:imgView1];
- isOne = YES;
- [imgView1 release];
- [imgView2 release];
- return self;
- }
- - (void) touchesBegan:(NSSet*)touches withEvent:(UIEvent*)event
- {
- // Determine which view occupies which role
- UIImageView *big = (UIImageView *)[self viewWithTag: (isOne ? IMAGE_VIEW_1 : IMAGE_VIEW_2)];
- UIImageView *little = (UIImageView *)[self viewWithTag: (isOne ? IMAGE_VIEW_2 : IMAGE_VIEW_1)];
- isOne = !isOne;
- // Pack all the changes into the animation block
- CGContextRef context = UIGraphicsGetCurrentContext();
- [UIView beginAnimations:nil context:context];
- [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
- [UIView setAnimationDuration:1.0];
- [big setFrame:SMALLRECT];
- [big setAlpha:0.5];
- [little setFrame:BIGRECT];
- [little setAlpha:1.0];
- [UIView commitAnimations];
- // Hide the shrunken "big" image.
- [big setAlpha:0.0f];
- [[big superview] bringSubviewToFront:big];
- }
- @end
- @interface HelloController : UIViewController
- @end
- @implementation HelloController
- - (void)loadView
- {
- ToggleView *contentView = [[ToggleView alloc] initWithFrame:[[UIScreen mainScreen] applicationFrame]];
- contentView.backgroundColor = [UIColor whiteColor];
- self.view = contentView;
- [contentView release];
- }
- @end
- @interface SampleAppDelegate : NSObject <UIApplicationDelegate>
- @end
- @implementation SampleAppDelegate
- - (void)applicationDidFinishLaunching:(UIApplication *)application {
- UIWindow *window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
- HelloController *hello = [[HelloController alloc] init];
- [window addSubview:hello.view];
- [window makeKeyAndVisible];
- }
- @end
- int main(int argc, char *argv[])
- {
- NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
- int retVal = UIApplicationMain(argc, argv, nil, @"SampleAppDelegate");
- [pool release];
- return retVal;
- }
- #import <UIKit/UIKit.h>
- #define IMAGE_VIEW_1 100
- #define IMAGE_VIEW_2 101
- #define BIGRECT CGRectMake(0.0f, 0.0f, 320.0f, 435.0f)
- #define SMALLRECT CGRectMake(130.0f, 187.0f, 60.0f, 60.0f)
- @interface ToggleView: UIView
- {
- BOOL isOne;
- }
- @end
- @implementation ToggleView
- - (id) initWithFrame: (CGRect) aFrame;
- {
- self = [super initWithFrame:aFrame];
- // Load both views, make them non-interactive
- UIImageView *imgView1 = [[UIImageView alloc] initWithFrame:BIGRECT];
- imgView1.image = [UIImage imageNamed:@"one.png"];
- imgView1.userInteractionEnabled = NO;
- imgView1.tag = IMAGE_VIEW_1;
- UIImageView *imgView2 = [[UIImageView alloc] initWithFrame:SMALLRECT];
- imgView2.image = [UIImage imageNamed:@"two.png"];
- imgView2.userInteractionEnabled = NO;
- imgView2.tag = IMAGE_VIEW_2;
- // image 1 is in front of image 2 to begin
- [self addSubview:imgView2];
- [self addSubview:imgView1];
- isOne = YES;
- [imgView1 release];
- [imgView2 release];
- return self;
- }
- - (void) touchesBegan:(NSSet*)touches withEvent:(UIEvent*)event
- {
- // Determine which view occupies which role
- UIImageView *big = (UIImageView *)[self viewWithTag: (isOne ? IMAGE_VIEW_1 : IMAGE_VIEW_2)];
- UIImageView *little = (UIImageView *)[self viewWithTag: (isOne ? IMAGE_VIEW_2 : IMAGE_VIEW_1)];
- isOne = !isOne;
- // Pack all the changes into the animation block
- CGContextRef context = UIGraphicsGetCurrentContext();
- [UIView beginAnimations:nil context:context];
- [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
- [UIView setAnimationDuration:1.0];
- [big setFrame:SMALLRECT];
- [big setAlpha:0.5];
- [little setFrame:BIGRECT];
- [little setAlpha:1.0];
- [UIView commitAnimations];
- // Hide the shrunken "big" image.
- [big setAlpha:0.0f];
- [[big superview] bringSubviewToFront:big];
- }
- @end
- @interface HelloController : UIViewController
- @end
- @implementation HelloController
- - (void)loadView
- {
- ToggleView *contentView = [[ToggleView alloc] initWithFrame:[[UIScreen mainScreen] applicationFrame]];
- contentView.backgroundColor = [UIColor whiteColor];
- self.view = contentView;
- [contentView release];
- }
- @end
- @interface SampleAppDelegate : NSObject <UIApplicationDelegate>
- @end
- @implementation SampleAppDelegate
- - (void)applicationDidFinishLaunching:(UIApplication *)application {
- UIWindow *window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
- HelloController *hello = [[HelloController alloc] init];
- [window addSubview:hello.view];
- [window makeKeyAndVisible];
- }
- @end
- int main(int argc, char *argv[])
- {
- NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
- int retVal = UIApplicationMain(argc, argv, nil, @"SampleAppDelegate");
- [pool release];
- return retVal;
- }
最重要的动画代码
- - (void) touchesBegan:(NSSet*)touches withEvent:(UIEvent*)event
- {
- // 這一段代碼,設定目前哪一張圖是大圖,哪一張是小圖
- UIImageView *big = (UIImageView *)[self viewWithTag: (isOne ? IMAGE_VIEW_1 : IMAGE_VIEW_2)];
- UIImageView *little = (UIImageView *)[self viewWithTag: (isOne ? IMAGE_VIEW_2 : IMAGE_VIEW_1)];
- isOne = !isOne;
- // 這是使用動畫的一些基本設定
- CGContextRef context = UIGraphicsGetCurrentContext();
- [UIView beginAnimations:nil context:context];
- [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut]; // 設定為IN OUT的動畫
- [UIView setAnimationDuration:1.0]; // 動畫時間為一秒
- [big setFrame:SMALLRECT];
- [big setAlpha:0.5];
- [little setFrame:BIGRECT];
- [little setAlpha:1.0];
- [UIView commitAnimations];
- // Hide the shrunken "big" image.
- [big setAlpha:0.0f];
- [[big superview] bringSubviewToFront:big];
- }
- @end
- - (void) touchesBegan:(NSSet*)touches withEvent:(UIEvent*)event
- {
- // 這一段代碼,設定目前哪一張圖是大圖,哪一張是小圖
- UIImageView *big = (UIImageView *)[self viewWithTag: (isOne ? IMAGE_VIEW_1 : IMAGE_VIEW_2)];
- UIImageView *little = (UIImageView *)[self viewWithTag: (isOne ? IMAGE_VIEW_2 : IMAGE_VIEW_1)];
- isOne = !isOne;
- // 這是使用動畫的一些基本設定
- CGContextRef context = UIGraphicsGetCurrentContext();
- [UIView beginAnimations:nil context:context];
- [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut]; // 設定為IN OUT的動畫
- [UIView setAnimationDuration:1.0]; // 動畫時間為一秒
- [big setFrame:SMALLRECT];
- [big setAlpha:0.5];
- [little setFrame:BIGRECT];
- [little setAlpha:1.0];
- [UIView commitAnimations];
- // Hide the shrunken "big" image.
- [big setAlpha:0.0f];
- [[big superview] bringSubviewToFront:big];
- }
- @end
代码中设定透明度的目的,为了就是小图放大的时候,才不会被原本在上面的大图盖到,导致看不到图。
小结:iPhone开发中如何将制作图片放大缩小案例的内容介绍完了,希望通过本文的学习能对你有所帮助!
转载于:https://www.cnblogs.com/85538649/archive/2011/12/06/2278541.html
iphone iPhone开发中如何将制作图片放大缩小代码实现案例相关推荐
- 直播电商平台开发,RecyclerView实现item图片放大缩小
直播电商平台开发,RecyclerView实现item图片放大缩小 ((ShopDetailsViewHolder) holder).img_list.setOnClickListener(new V ...
- [IPhone] 如何将制作图片放大缩小的动作
在IPhone SDK开发范例大全中,有很多的范例码 下面这段范例码,示范了两张图片的交换,以及放大缩小的动画 动画效果请参照下图 #import <UIKit/UIKit.h> #def ...
- android动画view上移,在Android开发中使用View制作一个引导动画
在Android开发中使用View制作一个引导动画 发布时间:2020-11-20 16:46:16 来源:亿速云 阅读:98 作者:Leah 这篇文章将为大家详细讲解有关在Android开发中使用V ...
- Android应用开发中三种常见的图片压缩方法
Android应用开发中三种常见的图片压缩方法,分别是:质量压缩法.比例压缩法(根据路径获取图片并压缩)和比例压缩法(根据Bitmap图片压缩). 一.质量压缩法private Bitmap comp ...
- android打地鼠设计报告,android开发中利用handler制作一个打地鼠小游戏
android开发中利用handler制作一个打地鼠小游戏 发布时间:2020-11-25 15:21:11 来源:亿速云 阅读:136 作者:Leah 这期内容当中小编将会给大家带来有关androi ...
- js吧html中的图片改为数组图片,巧用数组制作图片切换js代码
巧用数组制作图片切换js代码 发布于 2017-07-05 07:15:55 | 104 次阅读 | 评论: 0 | 来源: 网友投递 JavaScript客户端脚本语言Javascript 是一种由 ...
- php中图片放大,jquery实现图片放大缩小特效
和大家分享一个最近用到的jquery实现图片的放大缩小的特效.具体效果是鼠标移动到图片上,图片自动缩到左上角,右下角出现文字说明,鼠标移走后图片恢复,文字被图片遮挡.非常不错的一个图片特效功能.贴一下 ...
- imageView图片放大缩小及旋转
imageView图片放大缩小及旋转 一.简介 二.方法 1)设置图片放大缩小效果 第一步:将<ImageView>标签中的android:scaleType设置为"fitCen ...
- 【Axure交互教程】滑块控制图片放大缩小效果
作品名称:滑块控制图片放大缩小效果 作品编号:Case007 软件版本:Axure9 作品类型:交互案例 原型预览链接(附源文件下载链接):http://daisyaxure.com/demo/Cas ...
最新文章
- Androidx FloatingActionButton 中间图片颜色值修改
- vs 插件小番茄 visual assist x破解版 破解教程下载
- NSString属性什么时候用copy,什么时候用strong?
- 【TensorFlow】TFRecord数据集的制作:读取、显示及代码详解
- 日本的“电力路由器”概述
- CPU为什么不做成圆的而是方的?
- php容器原理,容器与依赖注入的原理
- 数据分析:星巴克店铺分布有何规律?
- 大量用户升级iPhone3.0系统导致苹果服务器故障
- python求解next数组实现KMP算法
- three.js 制作3D相册
- yaml文件的加载使用
- python绘制capm模型
- Android拨号盘列表加载机制(原)
- 【BFS】营救铁达尼号(C++)
- 程序模板(20210603笔记)
- mysql前缀索引 默认长度_如何确定前缀索引的长度?
- mysql密码为空包密码错误_apk空包签名方法及工具
- 【Hive】快速入门~
- 【MathType】彻底解决公式大小与文章文字大小不统一(含字体的字号与磅(pt)和像素(px)之间的换算关系)
热门文章
- java中replaceall用法_Java中String的ReplaceAll使用小结
- oracle什么时候使用静态监听,Oracle监听之动态监听与静态监听特点
- java请求超时异常捕获_我异常了,快来捕获我,Java异常简述
- vue快速复制快捷键_vue快捷键.doc
- oracle对某两列求和再求和_只会SUM函数求和,试试这5种求和函数,十倍提高工作效率...
- cdr圆形渐变填充怎么设置_玩出新花样|渐变应用于形状
- linux arm9开发环境,ARM9开发板Qt环境的搭建
- python sys模块详解_python中os和sys模块的区别与常用方法总结
- 收集了一些python的文章
- 贝叶斯集锦:MCMCpack包