`

IOS 图片放大缩小移动,使用block精简代码

    博客分类:
  • IOS
 
阅读更多

此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

 

 

 

 

 
 
  • 大小: 77.8 KB
分享到:
评论

相关推荐

    ios-图片放大缩小移动双击还原.zip

    "ios-图片放大缩小移动双击还原.zip" 文件包含了一个实现这些功能的示例代码。这个项目的核心是利用UIKit框架中的UIScrollView和UIImageView来实现图片的操作。 首先,UIScrollView是苹果提供的一个视图类,它允许...

    IOS uiscrollview 实现图片的放大缩小滚动浏览

    通过实现UISCrollview 代理方法来实现图片的浏览,及放大缩小。 使用方法: viewWillAppear中实现 showbigImage=[[ShowBigImageBox alloc]init]; [showbigImage setShowBigImageBoxDelegate:self]; ...

    iOS点击UIImageView图片放大缩小功能

    在iOS应用开发中,经常需要实现图片点击后放大缩小的效果,以增强用户体验,尤其是在查看细节丰富的图片时。这个功能可以通过自定义控件或者利用现有的框架来实现。在本案例中,我们关注的是一个专为这个需求封装的...

    iOS点击查看大图,图片放大缩小

    "iOS点击查看大图,图片放大缩小"这个主题主要涉及到ScrollView和Image两类组件的使用,它们是iOS中实现图片查看功能的关键。 ScrollView是iOS SDK中的一个基础控件,用于展示可滚动的内容,它可以容纳比屏幕更大的...

    swift5纯代码开发实现图片的单击全屏双击放大缩小拖拽捏合实现

    本教程将深入讲解如何使用Swift5纯代码方式实现在iOS应用中处理图片,包括单击全屏展示、双击放大缩小、拖拽以及捏合手势识别等功能。这些功能能够提升用户体验,让用户更加自然地与图片进行互动。 首先,我们需要...

    ios-图片放大缩小.zip

    这个名为"ios-图片放大缩小.zip"的压缩包很可能包含了一个简单的iOS项目,用于演示如何实现图片的点击放大和双击缩小功能。在这个场景中,主要涉及到的技术点有以下几个: 1. **UIImageView**: UIImageView是iOS...

    ios应用源码之简单的图片放大缩小demouitestapp 2018128

    这个"ios应用源码之简单的图片放大缩小demouitestapp 2018128"提供了这样一个功能的实现示例。下面我们将深入探讨这个源码中的关键知识点。 首先,此应用的核心技术基于UIKit框架,UIKit是iOS应用程序界面的主要...

    ioS TableView下拉图片放大上拉图片高度缩小TableViewFrame动态变化

    在标题“iOS TableView下拉图片放大上拉图片高度缩小TableViewFrame动态变化”中,提到的是一个特定的交互效果,即当用户滚动TableView时,顶部图片的行为会有所改变:下拉时图片放大,上拉时图片高度缩小,同时整个...

    iOS图片点击放大,左右滑动浏览

    2. **图片放大**:当图片被点击后,我们可以创建一个新的UIImageView(或者使用原来的ImageView,但设置其frame和contentMode适应放大后的大小),并将其添加到UIScrollView中。然后调整UIScrollView的contentSize以...

    ios 双指捏合放大缩小图片

    在iOS开发中,实现双指捏合操作来放大或缩小图片是一种常见的手势识别功能,它极大地提升了用户体验。这种手势主要用于图像查看器应用,让用户能够自由地查看图片的细节或者整体布局。本文将深入探讨如何在iOS中实现...

    ios-图片滚动放大缩小.zip

    在iOS开发中,实现“图片滚动放大缩小”的功能通常涉及到UIScrollView和UIImageView的使用。这个功能在许多应用中都很常见,比如相册应用或者图片浏览应用,用户可以通过手势对图片进行平移、缩放等操作。以下是一些...

    双指缩放图片,双击放大缩小图片DEMO

    至于双击放大或缩小图片,我们通常会使用`UITapGestureRecognizer`(iOS)或`OnClickListener`(Android)。当用户双击图片时,会触发一个事件,然后根据当前图片的缩放状态决定是放大还是缩小。例如,在iOS中,你...

    图片缩放,根据手势可以放大缩小

    4. **性能优化**:图片放大时,为了保持清晰度,可能需要加载更高分辨率的资源。然而,这会增加内存消耗和计算量,因此需要优化。例如,可以使用懒加载(lazy loading)策略,只在需要时加载高分辨率图片,或者使用...

    iOS 下拉图片放大

    在iOS应用开发中,"下拉图片放大"是一种常见的交互设计,主要应用于列表视图(UITableView)或滚动视图(UIScrollView)的头部。这种效果可以让用户在下拉刷新时,顶部的图片会随着手势的拉动而逐渐放大,既增加了...

    ios iphoto图片放大完整demo

    在iOS开发中,`iPhoto`的图片放大与缩小功能是一项常见的用户交互设计,它提升了用户体验,让用户可以更细致地查看图像。这个“ios iphoto图片放大完整demo”是针对iOS 5的一个示例项目,它展示了如何实现类似于`...

    iOS开发点击图片放大功能库

    例如,“点击图片放大库”可能就提供了这样的功能,只需几行代码就可以让图片具备点击放大、缩小及平移的能力。 - `ZoomingScrollView`是一个轻量级的库,它扩展了`UIScrollView`,使其能处理图片的缩放和平移。...

    简单的图片放大缩小demoUITestApp功能ios源码.zip

    这个压缩包文件“简单的图片放大缩小demoUITestApp功能ios源码.zip”包含了一个iOS应用的源代码,名为“UITestApp”。这个应用的核心功能是实现图片的放大和缩小操作,这对于用户界面(UI)测试和图像处理部分的iOS...

    ios-Swift版图片预览(手势放大缩小,双击放大缩小).zip

    本项目是使用Swift语言实现的一个简单图片预览功能,特别加入了手势交互,包括捏合手势(pinch gesture)来实现图片的放大和缩小,以及双击手势(double tap gesture)用于快速切换图片的放大状态。下面我们将详细...

    iOS block使用总结

    在iOS开发中,Block是一种强大的、灵活的代码封装机制,它允许我们定义并存储一段可执行的代码,可以在需要的时候调用。Blocks是Objective-C的语法扩展,后来也被引入到Swift中,对于处理异步操作、事件回调、简化...

Global site tag (gtag.js) - Google Analytics