NSDate を使用して時間を取得し、UILabel 内に表示する方法を知っています。
日付と時間と分を表示する必要があります。忙しく待たずに更新するにはどうすればよいですか?
ありがとう!
NSDate を使用して時間を取得し、UILabel 内に表示する方法を知っています。
日付と時間と分を表示する必要があります。忙しく待たずに更新するにはどうすればよいですか?
ありがとう!
NSTimer を使用してラベルの時刻を更新する
- (void)viewDidLoad
{
[super viewDidLoad];
[NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(updateTime) userInfo:nil repeats:YES];
}
-(void)updateTime
{
NSDate *date= [NSDate date];
NSDateFormatter *formatter1 = [[NSDateFormatter alloc]init]; //for hour and minute
formatter1.dateFormat = @"hh:mm a";// use any format
clockLabel.text = [formatter1 stringFromDate:date];
[formatter1 release];
}
あなたのコメントが言ったように、分が変わったときに必要な場合は、label.text
あなたはこのようにする必要があります:
1番目:現在の時刻を取得します:
NSDate *date = [NSDate date];
NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDateComponents *dateComponents = [calendar components:NSHourCalendarUnit fromDate:date];
を設定しlabel.text = CURRENTHOUR_AND_YOURMINNUTS
ます。
次のように、次の分にラベルを更新します。
最初に、60 - nowSeconds
[self performSelector:@selector(refreshLabel) withObject:nil afterDelay:(60 - dateComponents.minute)];の後に確認できます。
- (void)refreshLabel
{
//refresh the label.text on the main thread
dispatch_async(dispatch_get_main_queue(),^{ label.text = CURRENT_HOUR_AND_MINUTES; });
// check every 60s
[self performSelector:@selector(refreshLabel) withObject:nil afterDelay:60];
}
毎分チェックするので、効果は上記の回答以上です。
refreshLabel
呼び出されると、議事録が変更されたことを意味します
NSTimer を使用して、現在の時刻を定期的に取得できます。
[NSTimer scheduledTimerWithTimeInterval:2 target:self selector:@selector(timerFired:) userInfo:nil repeats:YES];
- (void)timerFired:(NSTimer*)theTimer{
//you can update the UILabel here.
}