2014-12-20 2 views
0

У меня есть один SKLableNode и я хочу, чтобы присвоить ему различные сообщения с 10 секунд интервала времениПрисвоение сообщение UILabel бесконечных раз

NSString *[email protected]"Message1"; 
    NSString *[email protected]"Message2"; 
    NSString *[email protected]"Message3"; 
    NSString *[email protected]"Message4"; 
    NSString *[email protected]"Message5"; 
    NSString *[email protected]"Message6"; 
    NSString *[email protected]"Message7"; 
    NSString *[email protected]"Message8"; 
    NSString *[email protected]"Message9"; 
    NSString *[email protected]"Message10"; 

Что является лучшим решением для него. Благодаря

+3

Посмотрите на 'NSTimer'. – rmaddy

+0

rmaddy правильный. Кроме того, вы можете использовать 'SKAction', так как вы говорите в своем посте, что используете« SKLabelNode »(даже жесткое ваше название предполагает иное). – AMI289

ответ

1

Объявить переменная globaly в ом

#import "MyScene.h" 

@implementation MyScene 

SKLabelNode *lblMessage; 

NSTimer *timerForMessage; 

int i; 

NSArray *arrMessageToUser; 

Теперь инициализирует переменную я и arrMessageToUser в - (ID) initWithSize: (CGSize) размер

-(id)initWithSize:(CGSize)size { 
if (self = [super initWithSize:size]) {    
    i=0;   
    arrMessageToUser=[[NSArray alloc]initWithObjects:@"Message1",@"Message2",@"Message3",@"Message4",@"Message5",@"Message6",@"Message7",@"Message8",@"Message9",@"Message10", nil]; 

} 
} 

Теперь на кнопку Тар вызвать метод messageToUser и инициализацию время с 10 секундного интервала

-(void)buttonClick{ 

[self messageToUser]; 

timerForMessage=[NSTimer scheduledTimerWithTimeInterval:10 target:self selector:@selector(messageToUser) userInfo:nil repeats:YES]; 

} 

Теперь здесь назначить сообщение от arrMessageToUser к lblMessage - (недействительными) messageToUser {

NSString *msg=arrMessageToUser[i]; 
lblMessage.text=msg; 
i++; 
if (i==10) { 
    i=0; 
}  
} 
0
@interface MyClass 

@property (strong, nonatomic) NSTimer *timer; 
@property (strong, nonatomic) NSUInteger numberOfTimerEventsFired; 
@property (strong, nonatomic) SKLabelNode labelNode; 

@end 

@implementation MyClass 

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    self.timer = [NSTimer scheduledTimerWithTimeInterval:1.f 
    target:self 
    selector:@selector(updateLabel) 
    userInfo:nil 
    repeats:YES]; 
} 

- (void)updateLabel 
{ 
    self.numberOfTimerEventsFired++; 
    NSUInteger eventsFired = self.numberOfTimerEventsFired; 
    self.labelNode.text = [NSString stringWithFormat:@"Message%lu", eventsFired]; 
    if (eventsFired == 10) 
    { 
     [self.timer invalidate]; 
    } 
} 

@end 

Пожалуйста, простите опечатки, как это было написано из окна машины, но это должно дать вам общее представление о том, как использовать NSTimer запланировать повторяющееся действие с целевым/селектором