利用uipickerview获取时间的倒计时程序

 

利用ActionSheet弹出选取框,并在label上显示倒计时的程序。网上有不少代码,但都不完整,现整合了一下,具体代码如下:

 

-(IBAction)startButton{

NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];

NSDateComponents *dateComponents = [gregorian components:(NSHourCalendarUnit  | NSMinuteCalendarUnit | NSSecondCalendarUnit) fromDate:[theDatePicker date]];

hour = [dateComponents hour];

min = [dateComponents minute];

sec = [dateComponents second];

[gregorian release];

countTimer = [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(timerMode) userInfo:nil repeats:YES];

}

 

-(void)timerMode {

if (sec >= 1) {

sec = sec - 1;

}

else {

min = min - 1;

sec = 59;

}

if (sec == 0 && min == 0 && hour >= 1) {

hour = hour -1;

min = 59;

sec = 59;

}

[self updateLabel];

}

 

-(void)updateLabel{

if (sec < 10 && min < 10) {

timeLabel.text = [NSString stringWithFormat:@"TIME: %i:0%i:0%i", hour, min, sec];

}

else if (min < 10 && sec > 9) {

timeLabel.text = [NSString stringWithFormat:@"TIME: %i:0%i:%i", hour, min, sec];

}

else if (min > 9 && sec < 10) {

timeLabel.text = [NSString stringWithFormat:@"TIME: %i:%i:0%i", hour, min, sec];

}

else if (min > 9 && sec > 9) {

timeLabel.text = [NSString stringWithFormat:@"TIME: %i:%i:%i", hour, min, sec];

}

if (sec == 0 && min == 0 && hour == 0) {

[countTimer invalidate];

}

}

 

 

 

#pragma mark -

#pragma ActionSheet Method

 

-(void)DatePickerView

{

pickerViewDate = [[UIActionSheet alloc] initWithTitle:@"How many?"

delegate:self

cancelButtonTitle:nil

  destructiveButtonTitle:nil

otherButtonTitles:nil];

theDatePicker = [[UIDatePicker alloc] initWithFrame:CGRectMake(0.0, 44.0, 0.0, 0.0)];

theDatePicker.datePickerMode = UIDatePickerModeCountDownTimer;

if(isFirstClick == NO)

[theDatePicker setMaximumDate:maxDate];

theDatePicker.countDownDuration = 1.0;

 

[theDatePicker addTarget:self action:@selector(dateChanged) forControlEvents:UIControlEventValueChanged];

pickerToolbar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, 320, 44)];

pickerToolbar.barStyle=UIBarStyleBlackOpaque;

[pickerToolbar sizeToFit];

NSMutableArray *barItems = [[NSMutableArray alloc] init];

UIBarButtonItem *flexSpace = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(DatePickerDoneClick)];

[barItems addObject:flexSpace];

[pickerToolbar setItems:barItems animated:YES];

[pickerViewDate addSubview:pickerToolbar];

[pickerViewDate addSubview:theDatePicker];

[pickerViewDate showInView:self.view];

[pickerViewDate setBounds:CGRectMake(0,0,320, 464)];

}

-(IBAction)dateChanged{

NSDateFormatter *FormatDate = [[NSDateFormatter alloc] init];

[FormatDate setDateFormat:@"YYYY:MM:DD:HH:mm:SS"];

timeLabel.text = [FormatDate stringFromDate:[theDatePicker date]];

maxDate = [theDatePicker date];

NSDate *selected = [theDatePicker date];

}

 

-(BOOL)closeDatePicker:(id)sender{

[pickerViewDate dismissWithClickedButtonIndex:0 animated:YES];

[pickerToolbar release];

[pickerViewDate release];

return YES;

}

 

-(IBAction)DatePickerDoneClick{

[self closeDatePicker:self];

//tableview.frame=CGRectMake(0, 44, 320, 416);

}

 

- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView{

return 2;

}

 

// returns the number of rows

- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component{

//return [pickerViewArray count];

return 0;

}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值