печать алфавитов в UILabel - PullRequest
       18

печать алфавитов в UILabel

0 голосов
/ 28 апреля 2011

Привет всем, В моем приложении для 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 голосов
/ 28 апреля 2011

Возможно 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.
    }
0 голосов
/ 28 апреля 2011

Предположим, у вас есть 10 UILabel в 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 один раз, каждый UILabel отобразится точно через 2,0 секунды.

...