目标是枚举String中的每个字符。那是' w'然后在1秒之后出现将由' h'然后' e'那么' n'。 问题我的标签只显示最后一个字母。
我做了什么: 1.拖动PlayViewController上的标签和按钮。 2.为Label创建属性 3.为按钮创建动作
在我的PlayViewController.h中:
#import <UIKit/UIKit.h>
@interface PlayViewController : UIViewController
@property (strong, nonatomic) IBOutlet UILabel *listChar;
- (IBAction)startGame:(id)sender;
@end
在我的PlayViewController.m中:
#import "PlayViewController.h"
@interface PlayViewController ()
@end
@implementation PlayViewController
NSString *word;
NSTimer *myTimer;
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view.
self.listChar.text = @" ";
word = @"when";
}
- (IBAction)startGame:(id)sender {
myTimer = [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(listLetter:) userInfo:nil repeats:YES];
}
-(void) listLetter:(NSTimer*) myTimer {
for(int i=0; i<[word length]; i++){
unichar letter = [word characterAtIndex: i];
self.listChar.text = [NSString stringWithFormat:@"%C", letter];
}
}
@end
答案 0 :(得分:0)
如果你想知道为什么这么开心,那么请参考 @Nitin的答案,如果你想以其他方式解决,那么只需使用以下代码
-(void) listLetter:(NSTimer*) myTimer
static int pos = 1;
self.listChar.text = [word substringToIndex:pos];
if (++pos > word.length) {
[myTimer invalidate];
}
}