在UILabel中打印字母

时间:2011-04-28 05:25:31

标签: iphone uilabel nstimer

Hai all, 在我的iPhone应用程序中,想要逐个打印UILabel中的一系列字符串,但现在只显示最后一个字符串。 我试过NSTIMER,但它不起作用。 任何人都可以帮助我。提前谢谢

这是我的代码:

//changing strings to char 
    char *cname1=[n1 cStringUsingEncoding:NSASCIIStringEncoding];
    char *cname2=[n2 cStringUsingEncoding:NSASCIIStringEncoding];


    for (int i = 0; i < [n1 length]; i++)
        {
            for (int j = 0; j < [n2 length]; j++){
            if ((cname1[i]==cname2[j]))
            {

                cname1[i]='*';
                cname2[j]='*';

                myString1 = [NSString stringWithFormat:@"%s", cname1];

                myString2 = [NSString stringWithFormat:@"%s", cname2];

                [self printlabel];
                break;
            }


    }

    -(void)printlabel{
        nam1.text = myString1; //set label1
        nam2.text = myString2; //set label2

        }

2 个答案:

答案 0 :(得分:0)

假设您在UILabel中有10 NSMutableArray

NSMutableArray* myAllLabel ;
int labelIndex = 0;

使用以下代码作为参考。

- (void) startDisplayingLabel {
     labelIndex = 0;
    [NSTimer scheduledTimerWithInterval:2.0f target:self selector:@selector(showElapsedTime:) userInfo:nil repeats:YES];
}

showElapsedTime将在延迟2.0秒后被调用,你提供。

-(void) showElapsedTime: (NSTimer *) timer {

    if(labelIndex == 10)
    {
      [timer invalidate];
    }
    else 
    {
         //Now you have your mylabel , you could add it to the superview 
         UILabel* mylabel = (UILabel*)[myAllLabel objectAtIndex:labelIndex];
         // Write your code here 

    }
    labelIndex++;
}

调用startDisplayingLabel一次,我将在2.0秒之后显示每个UILabel。

答案 1 :(得分:0)

可能NSThread会帮助你

尝试将代码更改为

 for (int i = 0; i < [n1 length]; i++)
        {
            for (int j = 0; j < [n2 length]; j++){
            if ((cname1[i]==cname2[j]))
            {

                cname1[i]='*';
                cname2[j]='*';

                myString1 = [NSString stringWithFormat:@"%s", cname1];

                myString2 = [NSString stringWithFormat:@"%s", cname2];

                [self printlabel];
                break;
            }
        [NSThread sleepForTimeInterval:2.0];//sleeps for 2 seconds.
    }