2013-01-14 56 views
0

我做这个代码启动动画当我点击一个按钮,当我点击按钮应该改变按钮显示的是什么,并启动动画,但它只是改变了按钮说什么?我的代码有什么问题吗?我的动画将无法启动

@synthesize SwishImage; 
@synthesize SwishButton; 

- (IBAction) Swish { 
if (SwishImage.isAnimating) { 
    [SwishImage stopAnimating]; 
    [SwishButton setTitle:@"Swish" forState:UIControlStateNormal]; 
} else { 
    [SwishImage startAnimating]; 
    [SwishButton setTitle:@"Searching" forState:UIControlStateNormal]; 
} 
} 
- (void)viewdidload 
{ 

NSArray * SwishArray; 
SwishArray = [[NSArray alloc] initWithObjects: 
        [UIImage imageNamed:@"Orange_dot.png"], 
        [UIImage imageNamed:@"1.png"], 
        [UIImage imageNamed:@"2.png"], 
        [UIImage imageNamed:@"3.png"], 
        [UIImage imageNamed:@"4.png"], 
        nil]; 
    SwishImage.animationImages=SwishArray; 
    SwishImage.animationDuration = 1; 
    SwishImage.animationRepeatCount = 0; 


[super viewDidLoad]; 
} 

回答

2

当我复制到这个空的Xcode项目,并在界面生成器正确链接所有图像视图开始制作动画。我假设Interface Builder中某些东西没有正确链接。

这就是说,从标准的角度来看,你的代码有点尴尬。变量名称应以小写字母开头(并且包含属性)。你不再需要@synthesize,并且NSArray有一个新的快捷方式。这里是你的类应该是什么样子:

ViewController.h

@interface ViewController : UIViewController 
@property (strong, nonatomic) IBOutlet UIImageView *swishImage; 
@property (strong, nonatomic) IBOutlet UIButton *swishButton; 
@end 

ViewController.m

@implementation ViewController 

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    NSArray *swishArray = @[ 
       [UIImage imageNamed:@"Orange_dot.png"], 
       [UIImage imageNamed:@"1.png"], 
       [UIImage imageNamed:@"2.png"], 
       [UIImage imageNamed:@"3.png"], 
       [UIImage imageNamed:@"4.png"], 
    ]; 
    self.swishImage.animationImages=swishArray; 
    self.swishImage.animationDuration = 1; 
    self.swishImage.animationRepeatCount = 0; 
} 

- (IBAction)swish:(id)sender { 
    if (self.swishImage.isAnimating) { 
     [self.swishImage stopAnimating]; 
     [self.swishButton setTitle:@"Swish" forState:UIControlStateNormal]; 
    } else { 
     [self.swishImage startAnimating]; 
     [self.swishButton setTitle:@"Searching" forState:UIControlStateNormal]; 
    } 
} 

@end 

然后,只需选择你的图像视图,并转到连接督察。您应该看到标题为“引用出口”的部分,确保swishImage已连接到您的视图控制器。

+0

非常感谢您的建议,我对编码感兴趣,并且突飞猛进。我已经开始整理我的命名约定。有时很难通过使用现在已经过时的方法来学习教程! – AMAN