gpt4 book ai didi

iphone - UIPickerView 看起来像 UIDatePicker 但有几秒钟

转载 作者:IT王子 更新时间:2023-10-29 08:06:58 41 4
gpt4 key购买 nike

我正在制作一个计时器应用程序,需要向用户显示小时、分钟和秒。我尝试使用 UIDatePicker 但它只显示小时和分钟作为选择。不是秒。在网上做了一些研究后,我发现在 UIDatePicker 中无法获得秒数,我不得不从头开始编写自己的 UIPickerView

所以我的问题是,是否有这样的示例代码,即有人写了一个 CustomUIPickerView 几个小时,分钟和秒,我可以合并到我的项目中? UIDatePicker 有一个漂亮的 Hours & Mins 文本叠加层,当用户旋转表盘时它会保持原样。如果有人也将其添加到他们的自定义选择器中,那就太好了。如果不需要,我不想从头开始编写自定义 UIPickerView。谢谢。

最佳答案

好的伙计们,这是在您的 UIPickerView 中获取小时/分钟/秒的代码。您可以添加 3 个标签,并有策略地将它们放在选取器上。我也附上了一张照片。

如果你喜欢这个答案,请给它打分!优秀的开发人员会分享知识,而不是像某些人建议的那样隐藏知识。祝您编码愉快!

enter image description here

在你的 header.h 文件中放这个

@interface v1AddTableViewController : UITableViewController
{

IBOutlet UIPickerView *pickerView;
NSMutableArray *hoursArray;
NSMutableArray *minsArray;
NSMutableArray *secsArray;

NSTimeInterval interval;

}

@property(retain, nonatomic) UIPickerView *pickerView;
@property(retain, nonatomic) NSMutableArray *hoursArray;
@property(retain, nonatomic) NSMutableArray *minsArray;
@property(retain, nonatomic) NSMutableArray *secsArray;

在你的 .m 文件中放这个

@synthesize pickerView;
@synthesize hoursArray;
@synthesize minsArray;
@synthesize secsArray;
@synthesize interval;

- (void)viewDidLoad
{
[super viewDidLoad];


//initialize arrays
hoursArray = [[NSMutableArray alloc] init];
minsArray = [[NSMutableArray alloc] init];
secsArray = [[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 secs/mins
[minsArray addObject:strVal];
[secsArray addObject:strVal];
}


NSLog(@"[hoursArray count]: %d", [hoursArray count]);
NSLog(@"[minsArray count]: %d", [minsArray count]);
NSLog(@"[secsArray count]: %d", [secsArray count]);

}


//Method to define how many columns/dials to show
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView
{
return 3;
}


// 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 if (component==1)
{
return [minsArray count];
}
else
{
return [secsArray 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;
case 2:
return [secsArray objectAtIndex:row];
break;
}
return nil;
}


-(IBAction)calculateTimeFromPicker
{

NSString *hoursStr = [NSString stringWithFormat:@"%@",[hoursArray objectAtIndex:[pickerView selectedRowInComponent:0]]];

NSString *minsStr = [NSString stringWithFormat:@"%@",[minsArray objectAtIndex:[pickerView selectedRowInComponent:1]]];

NSString *secsStr = [NSString stringWithFormat:@"%@",[secsArray objectAtIndex:[pickerView selectedRowInComponent:2]]];

int hoursInt = [hoursStr intValue];
int minsInt = [minsStr intValue];
int secsInt = [secsStr intValue];


interval = secsInt + (minsInt*60) + (hoursInt*3600);

NSLog(@"hours: %d ... mins: %d .... sec: %d .... interval: %f", hoursInt, minsInt, secsInt, interval);

NSString *totalTimeStr = [NSString stringWithFormat:@"%f",interval];

}

关于iphone - UIPickerView 看起来像 UIDatePicker 但有几秒钟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10999575/

41 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com