尝试将用户从UIDatePicker中选择的时间设置为模式:InterFace Builder中的“UIDatePickerModeCountDownTimer”。其他一些堆栈只是检查对象上属性countDownDuration的值。
@property (weak, nonatomic) IBOutlet UIDatePicker *hereIsThePicker;
...
NSLog(@"%f", self.hereIsThePicker.countDownDuration);
但是这个值通常会报告一系列值,我已经看过70,80,113等数字,用于选择“0小时,0分钟”。显然countDownDuration不是我需要的。
有没有人对如何使用UIDatePickerModeCountDownTimer有任何提示或线索,并将选择转换为所选的秒数?所以1分钟选择= 60秒,或1小时5分钟选择= 3900秒?
现在试图追踪这两天,但似乎无法理解正在发生的事情。
以下是我设置的示例应用程序的屏幕截图,其中包含这两个组件。您可以看到IBOutlet,以及一个带有IBAction的按钮,该按钮可以获取时间并将NSLogging到屏幕底部:
答案 0 :(得分:0)
最后,在尝试了几天的随机内容之后,简单的答案,无论出于何种原因,您需要将值设置为countDownDuration,即使您不需要:
[self.timerPicker setCountDownDuration:60.0f]; //Defaults to 1 minute
答案 1 :(得分:0)
在你的标题.h文件中放入
@interface ViewController : UIViewController
{
__weak IBOutlet UIPickerView *datePick;
NSMutableArray *hoursArray;
NSMutableArray *minsArray;
NSTimeInterval interval;
}
- (IBAction)calculateTimeFromPicker:(id)sender;
你的.m文件中的放了这个
- (void)viewDidLoad
{
[super viewDidLoad];
//initialize arrays
hoursArray = [[NSMutableArray alloc] init];
minsArray = [[NSMutableArray alloc] init];
NSString *strVal = [[NSString alloc] init];
for(int i=0; i<61; i++)
{
strVal = [NSString stringWithFormat:@"%d", i];
//NSLog(@"strVal: %@", strVal);
//Create array with 0-12 hours
if (i < 13)
{
[hoursArray addObject:strVal];
}
//create arrays with 0-60 mins
[minsArray addObject:strVal];
}
NSLog(@"[hoursArray count]: %d", [hoursArray count]);
NSLog(@"[minsArray count]: %d", [minsArray count]);
}
//Method to define how many columns/dials to show
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView
{
return 2;
}
// Method to define the numberOfRows in a component using the array.
- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent :(NSInteger)component
{
if (component==0)
{
return [hoursArray count];
}
else
{
return [minsArray count];
}
}
// Method to show the title of row for a component.
- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component
{
switch (component)
{
case 0:
return [hoursArray objectAtIndex:row];
break;
case 1:
return [minsArray objectAtIndex:row];
break;
}
return nil;
}
- (IBAction)calculateTimeFromPicker:(id)sender
{
NSString *hoursStr = [NSString stringWithFormat:@"%@",[hoursArray objectAtIndex:[pickerView selectedRowInComponent:0]]];
NSString *minsStr = [NSString stringWithFormat:@"%@",[minsArray objectAtIndex:[pickerView selectedRowInComponent:1]]];
int hoursInt = [hoursStr intValue];
int minsInt = [minsStr intValue];
interval = 0 + (minsInt*60) + (hoursInt*3600);
NSString *totalTimeStr = [NSString stringWithFormat:@"%f",interval];
}