Как я могу сделать эффекты перехода в UIImageView

У меня есть набор изображений, которые я хочу отображать как слайд-шоу. Есть ли какие-либо эффекты перехода, которые я могу применить к UIImageView .

  [imgView setImage:[UIImage imageNamed: @"images.jpeg"]]; 

Да, вы можете применить эффекты перехода к UIImageView .

Сначала вам нужно импортировать структуру QuartzCore .

 #import <QuartzCore/QuartzCore.h> 

Затем вы можете использовать CoreAnimation, как показано ниже:

 [imgView setImage:[UIImage imageNamed: @"images.jpeg"]]; CATransition *transition = [CATransition animation]; transition.duration = 1.0f; transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]; transition.type = kCATransitionFade; [imgView.layer addAnimation:transition forKey:nil]; 

Или вы можете просто анимировать группу изображений в UIImageView как

 imgView.animationImages = [NSArray arrayWithObjects: [UIImage imageNamed:@"image1.jpeg"], [UIImage imageNamed:@"image2.jpeg"], [UIImage imageNamed:@"image3.jpeg"], [UIImage imageNamed:@"image4.jpeg"], nil]; imgView.animationDuration = 1.0f; imgView.animationRepeatCount = 0; [imgView startAnimating]; 

Ниже приведен пример кода создания слайд-шоу. Убедитесь, что вы импортируете некоторые изображения в свой проект, а в случае метода измените настенные изображения на название ваших изображений.

  - (IBAction)start:(id)sender { _button.hidden = YES; [NSTimer scheduledTimerWithTimeInterval:2.0 target:self selector:@selector(photoCounter) userInfo:nil repeats:YES]; } - (void)photoCounter { [UIView beginAnimations:nil context:nil]; [UIView setAnimationDuration:0.90]; [UIView setAnimationTransition:UIViewAnimationTransitionCurlUp forView:self.view cache:NO]; [self updatePhoto]; [UIView commitAnimations]; } - (void)updatePhoto { switch (imageCount) { case 0: _images.image = [UIImage imageNamed:@"wall1.jpg"]; break; case 1: _images.image = [UIImage imageNamed:@"wall2.jpg"]; break; case 2: _images.image = [UIImage imageNamed:@"wall3.jpg"]; break; case 3: _images.image = [UIImage imageNamed:@"wall4.jpg"]; break; case 4: _images.image = [UIImage imageNamed:@"wall5.jpg"]; break; default: break; } imageCount ++; if (imageCount > 4) imageCount = 0; } 

Попробуйте использовать код ниже:

  NSArray *imageNames = @[@"2_1014.png", @"2_1015.png", @"2_1016.png", @"2_1017.png",@"2_1018.png", @"2_1019.png", @"2_1020.png", @"2_1021.png",@"2_1022.png", @"2_1023.png", @"2_1024.png", @"2_1025.png",@"2_1026.png", @"2_1027.png", @"2_1028.png", @"2_1029.png",@"2_1030.png",@"2_1030.png",@"2_1029.png", @"2_1028.png",@"2_1027.png",@"2_1026.png",@"2_1025.png", @"2_1024.png",@"2_1023.png",@"2_1022.png",@"2_1021.png", @"2_1020.png",@"2_1019.png",@"2_1018.png",@"2_1017.png", @"2_1016.png",@"2_1015.png",@"2_1014.png"]; NSMutableArray *images = [[NSMutableArray alloc] init]; for (int i = 0; i < imageNames.count; i++) { [images addObject:[UIImage imageNamed:[imageNames objectAtIndex:i]]]; } // Normal Animation animationImageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 320, [UIScreen mainScreen].bounds.size.height)]; animationImageView.animationImages = images; animationImageView.animationRepeatCount=0; animationImageView.animationDuration = 1; [self.view addSubview:animationImageView]; [animationImageView startAnimating];