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];
}
4

1 に答える 1

2

これを空のXcodeプロジェクトにコピーし、Interface Builderですべてを正しくリンクすると、画像ビューのアニメーションが開始されました。InterfaceBuilderで何かが正しくリンクされていないと思います。

そうは言っても、あなたのコードは標準の観点からは少し厄介です。変数名は小文字で始める必要があります(これにはプロパティが含まれます)。@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がViewControllerに接続されていることを確認してください。

于 2013-01-14T23:27:00.643 に答える