1

私は初心者なので、これが正しい質問場所かどうかわかりません。

あなたのサイトでこのコードを見つけて、背景色が循環する xcode iPhone アプリを作成しました - UIView backgroundColor color cycle

そしてそれはうまくいきます!1回循環して配列の最後の色で終了するように微調整するにはどうすればよいですか?

助けてくれてありがとう。

//  ViewController.m
//  colorCycle

#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad
{
    [super viewDidLoad];
    [self doBackgroundColorAnimation];
    // Do any additional setup after loading the view, typically from a nib.
}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

- (void) doBackgroundColorAnimation {
    static NSInteger i = 0;
    NSArray *colors = [NSArray arrayWithObjects:[UIColor greenColor], [UIColor yellowColor], [UIColor orangeColor], [UIColor redColor], nil];

    if(i >= [colors count]) {
        i = 0;
    }

    [UIView animateWithDuration:2.0f animations:^{
        self.view.backgroundColor = [colors objectAtIndex:i];
    } completion:^(BOOL finished) {
        ++i;
        [self doBackgroundColorAnimation];
    }];

}
4

1 に答える 1

2

returnif ブロックにステートメントを追加するだけです。

- (void) doBackgroundColorAnimation {
static NSInteger i = 0;
NSArray *colors = [NSArray arrayWithObjects:[UIColor greenColor], [UIColor yellowColor], [UIColor orangeColor], [UIColor redColor], nil];

if(i >= [colors count]) {
    return;
}

[UIView animateWithDuration:2.0f animations:^{
    self.view.backgroundColor = [colors objectAtIndex:i];
} completion:^(BOOL finished) {
    ++i;
    [self doBackgroundColorAnimation];
}];

}

于 2013-01-14T06:46:19.427 に答える