IOS手指控制图片的缩放

举报
清雨小竹 发表于 2022/09/25 00:05:34 2022/09/25
1.2k+ 0 0
【摘要】 //// MoveScaleImageController.h// MoveScaleImage//// Created by on 12-4-24.// Copyright (c) 2012年 __MyCompanyName__. All rights reserved.// #import <UIKit/UIKit....

      //
      // MoveScaleImageController.h
      // MoveScaleImage
      //
      // Created by on 12-4-24.
      // Copyright (c) 2012年 __MyCompanyName__. All rights reserved.
      //
      #import <UIKit/UIKit.h>
      #import "MoveScaleImageView.h"
      @interface MoveScaleImageController : UIViewController<UIScrollViewDelegate>{
          UIScrollView *myScrollView;
          UIImageView *myImageView;
      }
      @property(retain,nonatomic)UIScrollView *myScrollView;
      @property(retain,nonatomic)UIImageView *myImageView;
      @end
      //
      // MoveScaleImageController.m
      // MoveScaleImage
      //
      // Created by on 12-4-24.
      // Copyright (c) 2012年 __MyCompanyName__. All rights reserved.
      //
      #import "MoveScaleImageController.h"
      @interface MoveScaleImageController ()
      @end
      @implementation MoveScaleImageController
      @synthesize myScrollView;
      @synthesize myImageView;
      -(void)dealloc{
          [myScrollView release];
          [myImageView release];
          [super dealloc];
      }
      -(void)loadView{
          [super loadView];
          self.view.backgroundColor = [UIColor lightGrayColor];
      // UIButton *btn = [UIButton buttonWithType:UIButtonTypeRoundedRect];
          UIButton *btn = [[UIButton alloc]initWithFrame:CGRectMake(110, 200, 100, 50)];
      // [btn setFrame:CGRectMake(110, 200, 100, 40)];
          [btn setBackgroundColor:[UIColor whiteColor]];
          [btn setTitle:@"点击查看图片" forState:UIControlStateNormal];
          [btn.titleLabel setFont:[UIFont systemFontOfSize:13]];
          [btn setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
          [btn addTarget:self action:@selector(clickEvent:) forControlEvents:UIControlEventTouchUpInside];
          [self.view addSubview:btn];
          [btn release];
         //下面是我要剪切区域的覆盖层
      // if(self.centerOverLayView==nil)
      // {
      // UIView *centerView=[[UIView alloc] initWithFrame:CGRectMake(20, 100, 280, 210)];
      // self.centerOverLayView=centerView;
      // [centerView release];
      // }
      // self.centerOverLayView.backgroundColor=[UIColor clearColor];
      // self.centerOverLayView.layer.borderColor=[UIColor orangeColor].CGColor;
      // self.centerOverLayView.layer.borderWidth=2.0;
      // [self.view addSubview:self.centerOverLayView];
      }
      -(void)clickEvent:(id)sender{
         NSLog(@"***********clickeventad");
          myScrollView = [[UIScrollView alloc]initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)];
         if(self.myScrollView==nil)
          {
              UIScrollView *scrollView=[[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)];
              self.myScrollView=scrollView;
              [scrollView release];
          }
          self.myScrollView.backgroundColor=[UIColor blueColor];
          self.myScrollView.delegate=self;
          self.myScrollView.multipleTouchEnabled=YES;
          self.myScrollView.minimumZoomScale=1.0;
          self.myScrollView.maximumZoomScale=10.0;
          [self.view addSubview:self.myScrollView];
          UIImage *_image = [UIImage imageNamed:@"image.jpg"];
          CGFloat imageView_X = (_image.size.width > self.view.frame.size.width) ? self.view.frame.size.width : _image.size.width;
          CGFloat imageView_Y;
          CGFloat origin;
         if(_image.size.width > self.view.frame.size.width){
              origin = self.view.frame.size.width/_image.size.width;
              imageView_Y = _image.size.height*origin;
          }
          myImageView = [[UIImageView alloc]initWithFrame:CGRectMake((self.view.frame.size.width-imageView_X)/2, (self.view.frame.size.height-imageView_Y)/2, imageView_X, imageView_Y)];
         if(self.myImageView==nil)
          {
              UIImageView *imageView=[[UIImageView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)];
              self.myImageView=imageView;
              [imageView release];
          }
      // [myImageView setImage:_image];
          UIImage *originImage=[[UIImage alloc]initWithCGImage:_image.CGImage];
          [myImageView setImage:originImage];
      // [myImageView setFrame:CGRectMake(0, 0, _image.size.width, _image.size.height)];
          [self.myScrollView addSubview:self.myImageView];
          UIButton *closeBtn = [[UIButton alloc]initWithFrame:CGRectMake(10, 10, 50, 50)];
          [closeBtn setBackgroundColor:[UIColor redColor]];
          [closeBtn setAlpha:0.5];
          [closeBtn addTarget:self action:@selector(closeEvent:) forControlEvents:UIControlEventTouchUpInside];
          [self.view addSubview:closeBtn];
          [closeBtn release];
      // UIView *backView = [[UIView alloc] initWithFrame:CGRectInset(self.view.frame, 5, 5)];
      // backView.alpha = 0.5;
      // backView.backgroundColor = [UIColor blackColor];
          [self.view addSubview:backView];
      // 
      // UIImage* image=[UIImage imageNamed:@"image.jpg"];
      // MoveScaleImageView*fileContent = [[MoveScaleImageView alloc]initWithFrame:CGRectMake(0, 44, 320, 436)];
      // [fileContent setImage:image];
      // 
          [backView addSubview:fileContent];
      // [self.view addSubview:fileContent];
      // 
      // [backView release];
      // [fileContent release];
      }
      -(void)closeEvent:(id)sender{
          [self.myImageView setHidden:YES];
          [self.myScrollView setHidden:YES];
      }
      #pragma mark UIScrollView delegate methods
      //实现图片的缩放
      -(UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView{
         NSLog(@"**************viewForZoomingInScrollView");
         return self.myImageView;
      }
      //实现图片在素芳过程中居中
      - (void)scrollViewDidZoom:(UIScrollView *)scrollView
      {
          CGFloat offsetX = (scrollView.bounds.size.width > scrollView.contentSize.width)?(scrollView.bounds.size.width - scrollView.contentSize.width)/2 : 0.0;
          CGFloat offsetY = (scrollView.bounds.size.height > scrollView.contentSize.height)?(scrollView.bounds.size.height - scrollView.contentSize.height)/2 : 0.0;
          self.myImageView.center = CGPointMake(scrollView.contentSize.width/2 + offsetX,scrollView.contentSize.height/2 + offsetY);
      }
      - (void)viewDidLoad
      {
          [super viewDidLoad];
      // Do any additional setup after loading the view.
      }
      - (void)viewDidUnload
      {
          [super viewDidUnload];
         // Release any retained subviews of the main view.
      }
      - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
      {
         return (interfaceOrientation == UIInterfaceOrientationPortrait);
      }
      @end
  
 

文章来源: zzzili.blog.csdn.net,作者:清雨小竹,版权归原作者所有,如需转载,请联系作者。

原文链接:zzzili.blog.csdn.net/article/details/8448114

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

作者其他文章

评论(0

抱歉,系统识别当前为高风险访问,暂不支持该操作

    全部回复

    上滑加载中

    设置昵称

    在此一键设置昵称,即可参与社区互动!

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。