所以我有一个 UIImageView 和一个由四个 UIImage 组成的 NSMutuableArray。
我刚刚制作了这个 UIImageView 动画,所有四个图像都在这个 imageview 中以一系列完美的动画呈现。
现在我想要的是:当用户点击 ImageView 时,
用户刚刚点击了哪个图像。
UIImageView User Intraction is enabled
UIGestureRecognizerDelegate is Added
-(void)viewDidAppear:(BOOL)animated
{
UITapGestureRecognizer *tapGesture =
[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTaps:)];
tapGesture.numberOfTapsRequired = 1;
[myImageView addGestureRecognizer:tapGesture];
[self performSelectorInBackground:@selector(showAnimatedImages) withObject:nil];
[super viewDidAppear:animated];
}
- (void) showAnimatedImages
{
myImageView.animationImages = imagesArray;
myImageView.animationDuration = 12.0f;
[myImageView startAnimating];
}
- (void)handleTaps:(UITapGestureRecognizer *)sender
{
if (sender.state == UIGestureRecognizerStateRecognized)
{
UIImage *selectedImage = [myImageView image]; // return nil
//OR
UIImage *selectedImage = myImageView.image; // return nil
//OR
NSData *imgData = UIImagePNGRepresentation(myImageView.image); // return nil
}
}
如您所见,myImageView.image 总是给我一个 nil 值。
所以请告诉我如何从这个动画 ImageView 中获取图像。
最佳答案
这个解决方案会有点不同。
基本上我们无法从动画 ImageView 中获取当前图像。
以其他方式制作动画
-(void)animateImages
{
count++;
[UIView transitionWithView:imageSlideshow
duration:2.0f // this is caliculated as animationduration/numberofimage
options:UIViewAnimationOptionTransitionCrossDissolve
animations:^{
imageSlideshow.image = [imagesArray objectAtIndex: count % [imagesArray count]];
} completion:^(BOOL finished) {
[self animateImages];
}];
}
现在在您的点击手势中,您将获得图像
关于ios - 如何从 iOS 中的动画 UIImageView 获取图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26756202/