[英]How to get value of “countDownDuration” of UIDatePickerModeCountDownTimer?
[英]Reading Value from UIDatePicker UIDatePickerModeCountDownTimer
嘗試獲取用戶從InterFace Builder中設置為mode:“ UIDatePickerModeCountDownDownTimer”的UIDatePicker中選擇的時間量。 其他一些堆棧說只檢查對象的屬性countDownDuration的值。
@property (weak, nonatomic) IBOutlet UIDatePicker *hereIsThePicker;
...
NSLog(@"%f", self.hereIsThePicker.countDownDuration);
但是此值通常報告一個值范圍,我看到諸如“ 70小時”,“ 80分鍾”,“ 113分鍾”之類的數字,用於選擇“ 0小時0分”。 因此,顯然countDownDuration不是我所需要的。
有人對如何使用UIDatePickerModeCountDownTimer並將選擇內容轉換為選擇的秒數有任何提示或線索嗎? 所以選擇的1分鍾= 60秒,或選擇的1小時5分鍾= 3900秒?
一直試圖追蹤此事已有2天,但似乎無法理解發生了什么。
這是我設置的示例應用程序的屏幕截圖,其中僅包含這兩個組件。 您可以看到IBOutlet,以及帶有IBAction的按鈕,該按鈕正在獲取時間並將其NSLogging到屏幕底部:
最后,在嘗試了幾天的隨機數據之后,無論出於何種原因,即使您不需要:
[self.timerPicker setCountDownDuration:60.0f]; //Defaults to 1 minute
在您的標頭.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];
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.