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