从 iOS Xcode 中的数组列表中一一显示字符串 5
Display String one by one from array list in iOS Xcode 5
我有一大块字符串,我将数组列表中的所有字符串用白色 space 分开,并希望在同一个文本框中一个一个地显示,假设我有一个字符串 "my name is xyz" 然后文本框应该竞争这样的数据 "my" 然后等待几秒钟然后显示 "name" 再次等待并显示 "is" 等等.....
- (IBAction)btnstart:(id)sender {
NSString *myString=self.textcollector.text;
NSArray *readerArray=[myString componentsSeparatedByString:@" "];
int arraylenght=[readerArray count];
textcollector.text=@"";
for(int i=0;i<arraylenght;i++)
{
//textcollector=NULL;
self.textcollector.text=readerArray[i];
//NSLog(@" ",readerArray[i]);
sleep(1);
// textcollector.a
}
}
查看我的代码:
在你的 .h file
中:定义字符串数组。
@property (strong, nonatomic) NSArray *aryAll;
在你的.m file
.
@synthesize aryAll;
在btnstart
- (IBAction)btnstart:(id)sender {
self.aryAll = [[NSArray alloc] init];
NSString *stringAnimation = @"My name is kirit modi come from deesa city";
aryAll = [stringAnimation componentsSeparatedByString:@" "];
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_LOW, 0),
^{
[self animationString];
});
}
动画方法:
-(void)animationString
{
for (int i =0; i< aryAll.count; i++)
{
dispatch_async(dispatch_get_main_queue(),
^{
[labnanme setText:[aryAll objectAtIndex:i]];
});
[NSThread sleepForTimeInterval:1];
}
}
你的输出是:
试试这个,将 readerArray 和 i 声明为全局
NSArray *readerArray;
int i;
- (IBAction)btnstart:(id)sender
{
NSString *myString=self.textcollector.text;
readerArray=[myString componentsSeparatedByString:@" "];
NSUInteger arraylenght=[readerArray count];
self.statuslabel.text=@"";
[NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(showText) userInfo:nil repeats:YES];
}
-(void)showText
{
if (i<[readerArray count])
{
self.textcollector.text=readerArray[i];
i++;
}
}
最后使定时器失效
我有一大块字符串,我将数组列表中的所有字符串用白色 space 分开,并希望在同一个文本框中一个一个地显示,假设我有一个字符串 "my name is xyz" 然后文本框应该竞争这样的数据 "my" 然后等待几秒钟然后显示 "name" 再次等待并显示 "is" 等等.....
- (IBAction)btnstart:(id)sender {
NSString *myString=self.textcollector.text;
NSArray *readerArray=[myString componentsSeparatedByString:@" "];
int arraylenght=[readerArray count];
textcollector.text=@"";
for(int i=0;i<arraylenght;i++)
{
//textcollector=NULL;
self.textcollector.text=readerArray[i];
//NSLog(@" ",readerArray[i]);
sleep(1);
// textcollector.a
}
}
查看我的代码:
在你的 .h file
中:定义字符串数组。
@property (strong, nonatomic) NSArray *aryAll;
在你的.m file
.
@synthesize aryAll;
在btnstart
- (IBAction)btnstart:(id)sender {
self.aryAll = [[NSArray alloc] init];
NSString *stringAnimation = @"My name is kirit modi come from deesa city";
aryAll = [stringAnimation componentsSeparatedByString:@" "];
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_LOW, 0),
^{
[self animationString];
});
}
动画方法:
-(void)animationString
{
for (int i =0; i< aryAll.count; i++)
{
dispatch_async(dispatch_get_main_queue(),
^{
[labnanme setText:[aryAll objectAtIndex:i]];
});
[NSThread sleepForTimeInterval:1];
}
}
你的输出是:
试试这个,将 readerArray 和 i 声明为全局
NSArray *readerArray;
int i;
- (IBAction)btnstart:(id)sender
{
NSString *myString=self.textcollector.text;
readerArray=[myString componentsSeparatedByString:@" "];
NSUInteger arraylenght=[readerArray count];
self.statuslabel.text=@"";
[NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(showText) userInfo:nil repeats:YES];
}
-(void)showText
{
if (i<[readerArray count])
{
self.textcollector.text=readerArray[i];
i++;
}
}
最后使定时器失效