0

xcode でラベル内のテキストの表示配列を永遠に繰り返そうとしています。最初にarrayinviewDidLoadメソッドを追加しました

- (void)viewDidLoad
{
[super viewDidLoad];
_tweettest = @[@"tweet1",
 @"tweet2",
 @"tweet3",
 @"tweet4",
 @"tweet5"];

}

次に、メソッドにNSTimerオブジェクトを追加しますviewDidAppear

-(void) viewDidAppear:(BOOL)animated
{
 [super viewDidAppear:animated];
 NSDate *d = [NSDate dateWithTimeIntervalSinceNow: 0.1];
  Timer1 = [[NSTimer alloc] initWithFireDate: d
 interval: 1
 target:self
 selector:@selector(Timer1Tasks)
 userInfo:nil
repeats:YES];
NSRunLoop *runner = [NSRunLoop currentRunLoop];
[runner addTimer:Timer1 forMode: NSDefaultRunLoopMode];

}

次に、1秒ごとにラベルにテキストを追加するメソッドを追加します

-(void) Timer1Tasks
{
static int count = 0;
NSString* letter = nil;


switch(count) {

    case 0: letter = _tweettest[0];
        _tweetlabel.text = [NSString stringWithFormat:@"%@",  letter];
        break;
    case 1: letter = _tweettest[1];
        _tweetlabel.text = [NSString stringWithFormat:@"%@",  letter];
        break;
    case 2: letter = _tweettest[2];
        _tweetlabel.text = [NSString stringWithFormat:@"%@",  letter];
        break;
    case 3: letter = _tweettest[3];
        _tweetlabel.text = [NSString stringWithFormat:@"%@",  letter];
        break;
    case 4: letter = _tweettest[4];
        _tweetlabel.text = [NSString stringWithFormat:@"%@",  letter];
        break;
}
count++;


}

これで、すべてのテキストを最初から永遠に繰り返し表示するループがないことを除いて、すべて問題ありません。

どんなアイデアでも役に立ちます。

4

1 に答える 1

1

これを試して:

-(void) Timer1Tasks
{
static int count = 0;
_tweetlabel.text = _tweettest[count];
count = ((count + 1) %  _tweettest.count);
}

次に、静的 int をインスタンス変数にする必要があります。

于 2013-05-16T22:44:47.167 に答える