1

UILabelで、文字ごとに入力するように文字列を表示できますか?たとえば、ラベルテキストが「IPHONE」の場合、「I」、「IP」、「IPH」の順に「IPHONE」まで表示したいと思います。

この方法でラベルにテキストを表示するにはどうすればよいですか?

4

2 に答える 2

7

したがって、文字列の最初の文字を表示し、しばらくしてから 2 番目の文字などを表示する必要があります。解決策: メソッドを定期的に呼び出すタイマーを使用します。そのメソッドはテキストを適切に設定します:

NSString *theTextToDisplay = @"Hello world!";

[NSTimer scheduledTimerWithTimeInterval:0.33
                                 target:self
                               selector:@selector(timerShoot:)
                               userInfo:nil
                                repeats:YES];

- (void)timerShoot:(NSTimer *)tmr
{
    static int pos = 1;
    theUILabel.text = [theTextToDisplay substringToIndex:pos];
    if (++pos > theTextToDisplay.length) {
        [tmr invalidate];
    }
}
于 2013-01-03T12:05:23.563 に答える
1

これは単なる例であり、テキストを 1 つずつアニメーションで表示するためのロジックです。

最初に次のようなフレームを追加してから、次のUILableようなテキストを設定します...

 yourLable.frame = CGRectMake(0, 112, 0, yourLable.frame.size.height); 
 yourLable.text = @"IPHONE";

その後、表示したいときにこの次のメソッドを呼び出しますUILable

-(IBAction)btnLableShow_Clicked:(id)sender
{

    [UIView beginAnimations:nil context:NULL];
    [UIView setAnimationDuration:0.8];

    yourLable.frame = CGRectMake(0, 112, 220, yourLable.frame.size.height);  // set width with your requirement
    [UIView commitAnimations];
}
于 2013-01-03T12:03:28.170 に答える