Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/97.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios UIImageView不会使用基于图像的动画制作动画_Ios_Objective C_Animation_Uiimageview - Fatal编程技术网

Ios UIImageView不会使用基于图像的动画制作动画

Ios UIImageView不会使用基于图像的动画制作动画,ios,objective-c,animation,uiimageview,Ios,Objective C,Animation,Uiimageview,我有8个UIImageViews,它们是在故事板中创建的,我正在尝试使用基于图像的动画来设置动画,但由于某些原因,这些图像无法设置动画 viewController.h #import <UIKit/UIKit.h> @class RandomImages; @interface ViewController : UIViewController // Outlets foe the dice @property (weak, nonatomic) IBOutlet UIIma

我有8个
UIImageView
s,它们是在故事板中创建的,我正在尝试使用基于图像的动画来设置动画,但由于某些原因,这些图像无法设置动画

viewController.h

#import <UIKit/UIKit.h>

@class RandomImages;

@interface ViewController : UIViewController

// Outlets foe the dice
@property (weak, nonatomic) IBOutlet UIImageView *dieImage0;
@property (weak, nonatomic) IBOutlet UIImageView *dieImage1;
@property (weak, nonatomic) IBOutlet UIImageView *dieImage2;
@property (weak, nonatomic) IBOutlet UIImageView *dieImage3;
@property (weak, nonatomic) IBOutlet UIImageView *dieImage4;
@property (weak, nonatomic) IBOutlet UIImageView *dieImage5;
@property (weak, nonatomic) IBOutlet UIImageView *dieImage6;
@property (weak, nonatomic) IBOutlet UIImageView *dieImage7;
@property (weak, nonatomic) IBOutlet UIButton *MenuButton;
@property (weak, nonatomic) IBOutlet UIButton *rollTargetButton;

@property (strong, nonatomic) RandomImages *randomImages;
@property (strong, nonatomic) NSArray *diceOutletArray;

- (void) rollDice;

@end
randominimages.m

#import "RandomImages.h"

@implementation RandomImages
@synthesize diceImages;

- (instancetype)init
{
    self = [super init];
    if (self) {
        // Array of dice for the randomNumber method
        self.diceImages = [[NSArray alloc] initWithObjects:
                       [UIImage imageNamed:@"dicey-die1"],
                       [UIImage imageNamed:@"dicey-die2"],
                       [UIImage imageNamed:@"dicey-die3"],
                       [UIImage imageNamed:@"dicey-die4"],
                       [UIImage imageNamed:@"dicey-die5"],
                       [UIImage imageNamed:@"dicey-die6"], nil];
    }
    return self;
}


// Random dice number method
- (UIImage *)randomNumber {
    int random = arc4random_uniform((int)self.diceImages.count);
    return [self.diceImages objectAtIndex:random];
}

@end
randominimages.h

#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>

@interface RandomImages : NSObject

@property (strong, nonatomic) NSArray *diceImages;

- (UIImage *) randomNumber;

@end

您应该只有一个UIImageView。不是8

动画图像的整个要点是,它使用一个UI元素(UIImageView),然后在图像中循环

self.myONEImageView.animationImages = [[NSArray alloc] initWithObjects:
                                 [UIImage imageNamed:@"dicy-die5"],
                                 [UIImage imageNamed:@"dicy-die6"],
                                 [UIImage imageNamed:@"dicy-die1"],
                                 [UIImage imageNamed:@"dicy-die4"],
                                 [UIImage imageNamed:@"dicy-die3"],
                                 [UIImage imageNamed:@"dicy-die5"],
                                 [UIImage imageNamed:@"dicy-die2"],
                                 [UIImage imageNamed:@"dicy-die1"],
                                 [UIImage imageNamed:@"dicy-die6"],
                                 [UIImage imageNamed:@"dicy-die3"],
                                 [UIImage imageNamed:@"dicy-die5"],
                                 [UIImage imageNamed:@"dicy-die2"],
                                 [UIImage imageNamed:@"dicy-die3"], nil];
我认为这是个打字错误。
我已经创建了项目,您的代码运行正常。
如果你愿意,我会分享我的本地项目

请注意图像文件名。
@“dicy die…”
@“dicy die…”

我相信项目中没有添加“
@”dicy die…”

更新:
我的项目的github列表

为什么在每个图像视图上同时设置
动画图像
图像
?你应该只使用其中一个,而不是两个。我是在这样做吗?你是说for循环吗,ImageView是否被指定了名称“dieMages”?(我说得对吗?)在
viewdiload
中,为所有图像视图设置
animationImages
。然后在
rollDice
中为所有图像视图设置
image
。屏幕上有7个骰子吗?我有点不知道你希望在这里做什么不,试着确保它在主线程上运行。Dispatch\u async get\u main\u Que如果要设置8个UIImageView的动画,该怎么办?我正在尝试制作“骰子”的动画。是的,我想看看你的项目。@CalebKleveter-answer更新。请随意更改此回购协议。
dispatch_async(dispatch_get_main_queue(), ^{
        numberImage.image = [self.randomImages randomNumber];
        [numberImage startAnimating];
    });
self.myONEImageView.animationImages = [[NSArray alloc] initWithObjects:
                                 [UIImage imageNamed:@"dicy-die5"],
                                 [UIImage imageNamed:@"dicy-die6"],
                                 [UIImage imageNamed:@"dicy-die1"],
                                 [UIImage imageNamed:@"dicy-die4"],
                                 [UIImage imageNamed:@"dicy-die3"],
                                 [UIImage imageNamed:@"dicy-die5"],
                                 [UIImage imageNamed:@"dicy-die2"],
                                 [UIImage imageNamed:@"dicy-die1"],
                                 [UIImage imageNamed:@"dicy-die6"],
                                 [UIImage imageNamed:@"dicy-die3"],
                                 [UIImage imageNamed:@"dicy-die5"],
                                 [UIImage imageNamed:@"dicy-die2"],
                                 [UIImage imageNamed:@"dicy-die3"], nil];