此demo用到了block来抽取重复代码,使demo代码美观。
目前还有个BUG,旋转后,上下移动会导致图片消失。
// // HelloWorldViewController.h // 图片移动 // // Created by mahongmin on 14-5-10. // Copyright (c) 2014年 mahongmin. All rights reserved. // #import <UIKit/UIKit.h> @interface HelloWorldViewController : UIViewController @property (weak, nonatomic) IBOutlet UIButton *btn_show; @property (weak, nonatomic) IBOutlet UIImageView *flowerImage; - (IBAction)move:(id)sender; - (IBAction)rotation:(id)sender; - (IBAction)zoom:(id)sender; - (IBAction)restore:(id)sender; - (void)btnClickWithBlock:(void (^)())block; @end
===============
// // HelloWorldViewController.m // 图片移动 // // Created by mahongmin on 14-5-10. // Copyright (c) 2014年 mahongmin. All rights reserved. // #import "HelloWorldViewController.h" @interface HelloWorldViewController () { CGRect initRect; } @end @implementation HelloWorldViewController - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. initRect = self.flowerImage.frame; } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } /* 主义block用法 -(void)btnClickWithBlock:(void(^)())abc{ } (void(^)())是block类型 abc是block的形参 */ - (void)btnClickWithBlock:(void (^)())block { [UIView beginAnimations:NULL context:NULL]; [UIView setAnimationDuration:1]; block(); [UIView commitAnimations]; } #pragma mark - 控制图片上下所有移动 - (IBAction)move:(id)sender { [self btnClickWithBlock:^{ CGRect frame = self.flowerImage.frame; int delta = 50; switch ([sender tag]) { case 0://上 frame.origin.y -= delta; break; case 1://右 frame.origin.x += delta; break; case 2://下 frame.origin.y += delta; break; case 3://左 frame.origin.x -= delta; break; default: break; } self.flowerImage.frame = frame; }]; } #pragma mark - 旋转 - (IBAction)rotation:(id)sender { [self btnClickWithBlock:^{ self.flowerImage.transform = CGAffineTransformRotate(self.flowerImage.transform, [sender tag] == 4 ? -M_PI_4 : M_PI_4); }]; } #pragma mark - 放大缩小 - (IBAction)zoom:(id)sender { [self btnClickWithBlock:^{ CGFloat scale = [sender tag] == 6 ? 1.1 : 0.9; self.flowerImage.transform = CGAffineTransformScale(self.flowerImage.transform, scale, scale); }]; } - (IBAction)restore:(id)sender { [self btnClickWithBlock:^{ self.flowerImage.frame = initRect; self.flowerImage.transform = CGAffineTransformIdentity; }]; } @end
相关推荐
"ios-图片放大缩小移动双击还原.zip" 文件包含了一个实现这些功能的示例代码。这个项目的核心是利用UIKit框架中的UIScrollView和UIImageView来实现图片的操作。 首先,UIScrollView是苹果提供的一个视图类,它允许...
通过实现UISCrollview 代理方法来实现图片的浏览,及放大缩小。 使用方法: viewWillAppear中实现 showbigImage=[[ShowBigImageBox alloc]init]; [showbigImage setShowBigImageBoxDelegate:self]; ...
在iOS应用开发中,经常需要实现图片点击后放大缩小的效果,以增强用户体验,尤其是在查看细节丰富的图片时。这个功能可以通过自定义控件或者利用现有的框架来实现。在本案例中,我们关注的是一个专为这个需求封装的...
"iOS点击查看大图,图片放大缩小"这个主题主要涉及到ScrollView和Image两类组件的使用,它们是iOS中实现图片查看功能的关键。 ScrollView是iOS SDK中的一个基础控件,用于展示可滚动的内容,它可以容纳比屏幕更大的...
本教程将深入讲解如何使用Swift5纯代码方式实现在iOS应用中处理图片,包括单击全屏展示、双击放大缩小、拖拽以及捏合手势识别等功能。这些功能能够提升用户体验,让用户更加自然地与图片进行互动。 首先,我们需要...
这个名为"ios-图片放大缩小.zip"的压缩包很可能包含了一个简单的iOS项目,用于演示如何实现图片的点击放大和双击缩小功能。在这个场景中,主要涉及到的技术点有以下几个: 1. **UIImageView**: UIImageView是iOS...
这个"ios应用源码之简单的图片放大缩小demouitestapp 2018128"提供了这样一个功能的实现示例。下面我们将深入探讨这个源码中的关键知识点。 首先,此应用的核心技术基于UIKit框架,UIKit是iOS应用程序界面的主要...
在标题“iOS TableView下拉图片放大上拉图片高度缩小TableViewFrame动态变化”中,提到的是一个特定的交互效果,即当用户滚动TableView时,顶部图片的行为会有所改变:下拉时图片放大,上拉时图片高度缩小,同时整个...
2. **图片放大**:当图片被点击后,我们可以创建一个新的UIImageView(或者使用原来的ImageView,但设置其frame和contentMode适应放大后的大小),并将其添加到UIScrollView中。然后调整UIScrollView的contentSize以...
在iOS开发中,实现双指捏合操作来放大或缩小图片是一种常见的手势识别功能,它极大地提升了用户体验。这种手势主要用于图像查看器应用,让用户能够自由地查看图片的细节或者整体布局。本文将深入探讨如何在iOS中实现...
在iOS开发中,实现“图片滚动放大缩小”的功能通常涉及到UIScrollView和UIImageView的使用。这个功能在许多应用中都很常见,比如相册应用或者图片浏览应用,用户可以通过手势对图片进行平移、缩放等操作。以下是一些...
至于双击放大或缩小图片,我们通常会使用`UITapGestureRecognizer`(iOS)或`OnClickListener`(Android)。当用户双击图片时,会触发一个事件,然后根据当前图片的缩放状态决定是放大还是缩小。例如,在iOS中,你...
4. **性能优化**:图片放大时,为了保持清晰度,可能需要加载更高分辨率的资源。然而,这会增加内存消耗和计算量,因此需要优化。例如,可以使用懒加载(lazy loading)策略,只在需要时加载高分辨率图片,或者使用...
在iOS应用开发中,"下拉图片放大"是一种常见的交互设计,主要应用于列表视图(UITableView)或滚动视图(UIScrollView)的头部。这种效果可以让用户在下拉刷新时,顶部的图片会随着手势的拉动而逐渐放大,既增加了...
在iOS开发中,`iPhoto`的图片放大与缩小功能是一项常见的用户交互设计,它提升了用户体验,让用户可以更细致地查看图像。这个“ios iphoto图片放大完整demo”是针对iOS 5的一个示例项目,它展示了如何实现类似于`...
例如,“点击图片放大库”可能就提供了这样的功能,只需几行代码就可以让图片具备点击放大、缩小及平移的能力。 - `ZoomingScrollView`是一个轻量级的库,它扩展了`UIScrollView`,使其能处理图片的缩放和平移。...
这个压缩包文件“简单的图片放大缩小demoUITestApp功能ios源码.zip”包含了一个iOS应用的源代码,名为“UITestApp”。这个应用的核心功能是实现图片的放大和缩小操作,这对于用户界面(UI)测试和图像处理部分的iOS...
本项目是使用Swift语言实现的一个简单图片预览功能,特别加入了手势交互,包括捏合手势(pinch gesture)来实现图片的放大和缩小,以及双击手势(double tap gesture)用于快速切换图片的放大状态。下面我们将详细...
在iOS开发中,Block是一种强大的、灵活的代码封装机制,它允许我们定义并存储一段可执行的代码,可以在需要的时候调用。Blocks是Objective-C的语法扩展,后来也被引入到Swift中,对于处理异步操作、事件回调、简化...