UILabelで、文字ごとに入力するように文字列を表示できますか?たとえば、ラベルテキストが「IPHONE」の場合、「I」、「IP」、「IPH」の順に「IPHONE」まで表示したいと思います。
この方法でラベルにテキストを表示するにはどうすればよいですか?
したがって、文字列の最初の文字を表示し、しばらくしてから 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];
}
}
これは単なる例であり、テキストを 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];
}