IOS 이미지 클릭 확대

2631 단어
1. 다른 ViewController에 사진첩에 불러온 그림을 표시하고 실제 불러오지 않습니다. 구체적인 코드는 다음과 같습니다.
그 중에서 디스플레이 시간이 0.3초일 때 외부에서 안으로 애니메이션 효과를 불러옵니다.
사용 방법:
   ImageEnlargeViewController *_vc = [[ImageEnlargeViewController alloc]init];
    _vc.enlargeImages = thumbnail;
    [self.navigationController pushViewController:_vc animated:YES];
2. 현재 그림의 미리 보기 그림이 있는 ViewController에서 틀리지 않는 확대 그림을 불러오기(표시 시간을 0.0에서 0.3s로 조정)를 누르고 아래 두 주석의 코드를 엽니다.
 //[backgroundView addSubview:imageView];
  //[window addSubview:backgroundView];
사용 방법: [PhotoBrowser showImage: UIImageView.view];
- (void)viewDidLoad
{
    [super viewDidLoad];

    [self setTitle:@"    "];
    
    [self initContent];
}

- (void)initContent
{
    self.imageViews=[[UIImageView alloc] initWithImage:self.enlargeImages];
    self.imageViews.userInteractionEnabled=YES;
    
    [self showImage: self.imageViews];
}

- (void)showImage:(UIImageView *)avatarImageView
{
    UIImage *image=avatarImageView.image;
    UIWindow *window=[UIApplication sharedApplication].keyWindow;
    UIView *backgroundView=[[UIView alloc]initWithFrame:CGRectMake(0, 0, [UIScreen mainScreen].bounds.size.width, [UIScreen mainScreen].bounds.size.height)];
    
    oldframe=[avatarImageView convertRect:avatarImageView.bounds toView:window];
    backgroundView.backgroundColor=[UIColor blackColor];
    backgroundView.alpha=0;
    
    UIImageView *imageView=[[UIImageView alloc]initWithFrame:oldframe];
    imageView.image=image;
    imageView.tag=1;
    [self.view addSubview:imageView];
   // [backgroundView addSubview:imageView];
   // [window addSubview:backgroundView];
    
    UITapGestureRecognizer *tap=[[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(hideImage:)];
    [backgroundView addGestureRecognizer: tap];
    
    [UIView animateWithDuration:0.0 animations:^{
        imageView.frame=CGRectMake(0,([UIScreen mainScreen].bounds.size.height-image.size.height*[UIScreen mainScreen].bounds.size.width/image.size.width)/2, [UIScreen mainScreen].bounds.size.width, image.size.height*[UIScreen mainScreen].bounds.size.width/image.size.width);
        backgroundView.alpha=1;
    } completion:^(BOOL finished)
     {
        
    }];
}

- (void)hideImage:(UITapGestureRecognizer*)tap
{
    UIView *backgroundView=tap.view;
    UIImageView *imageView=(UIImageView*)[tap.view viewWithTag:1];
    [UIView animateWithDuration:0.3 animations:^{
        imageView.frame=oldframe;
        backgroundView.alpha=0;
    } completion:^(BOOL finished)
    {
        [backgroundView removeFromSuperview];
    }];
}

좋은 웹페이지 즐겨찾기