1

在 UILabel 中,您可以显示一个字符串以便逐个字符地填充吗?例如,如果标签文本是“IPHONE”,我想显示“I”,然后是“IP”,然后是“IPH”,一直到“IPHONE”。

我怎么能以这种方式让标签显示文本?

4

2 回答 2

7

所以你想显示一个字符串的第一个字母,然后在一段时间后显示它的第二个字母,等等。解决方案:使用一个定期调用方法的计时器;该方法将适当地设置文本:

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

这只是一个例子,只是一个用动画逐一显示文本的逻辑。

首先添加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 回答