2013-01-14 98 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