2011-04-28 111 views
0

Hai all, 在我的iPhone应用程序中,想要在UILabel中逐一打印一系列字符串,但只有最后一个字符串正在显示。 我试过NSTIMER,但它不起作用。 谁能帮助me.thanks提前在UILabel中打印字母

这里是我的代码:

//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 

     } 
+0

你可以发表你的相关的代码? – Jamie 2011-04-28 05:27:57

+0

我想你忘了放一些代码。 – Gypsa 2011-04-28 05:28:52

回答

0

让我们假设,你有。

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。

+0

非常感谢。帮助... – viru 2011-04-30 04:30:07

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. 
    }