gpt4 book ai didi

ios - 带条件的UIPickerView

转载 作者:行者123 更新时间:2023-12-01 16:54:48 26 4
gpt4 key购买 nike

我对Xcode以及与编码真正相关的一切都是全新的,但是我一直在使用它,直到现在似乎还可以。我想做的事...

我有一个UIPickerView,其中包含由数组填充的2个组件。很好,而且效果很好,但是我希望再进一步。

在左侧组件上,我希望有一个包含不变值的列表。在第二个组件中,我希望有一个子列表,其中包含第一个组件中单击的所有选择。

例如:-

BOY : Matt
Tom
Pete

GIRL : Jess
Nina
Sarah

我以为我可以使用 if语句来完成这些更改,但不知道该语言……一个人只能经历这么多的反复试验!

干杯
@interface TripsViewController ()
@end

@implementation TripsViewController

@synthesize ActivitysLabel;
@synthesize TripsLabel;

- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView
{
return 2;
}

- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component {
if (component == ACTIVITY)
return [ArrayActivity count];

if (component == TRIPS)
return [ArrayTrips count];

return 0;
}

- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component{

if (component == ACTIVITY)
return [ArrayActivity objectAtIndex:row];

if (component == TRIPS)
return [ArrayTrips objectAtIndex:row];
return 0;
}

- (void) pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component {
ActivitysLabel.text = [ArrayActivity objectAtIndex:[pickerView selectedRowInComponent:0]];
TripsLabel.text = [ArrayTrips objectAtIndex:[pickerView selectedRowInComponent:1]];
}

- (id)initWithStyle:(UITableViewStyle)style
{
self = [super initWithStyle:style];
if (self) {
// Custom initialization
}
return self;
}

- (void)viewDidLoad

{
[super viewDidLoad];
ArrayActivity = [[NSMutableArray alloc] init];
[ArrayActivity addObject:@"Abseiling"];
[ArrayActivity addObject:@"Canyoning"];
[ArrayActivity addObject:@"Rock Climbing"];
[ArrayActivity addObject:@"Bush Walking"];
[ArrayActivity addObject:@"Mountain Biking"];
[ArrayActivity addObject:@"4wd Tours"];


// My attempts at trying to solve this problem


if (ArrayActivity containsObject:NSString @"Canyoning") {
ArrayTrips = [[NSMutableArray alloc] init];
[ArrayTrips addObject:@"Empress Canyon"];
[ArrayTrips addObject:@"Sheep Dip"];
[ArrayTrips addObject:@"butterbox"];
}

最佳答案

我认为该代码通常是正确的,但是在选择将改变可能的选择的项目之后,您必须执行的操作是调用reloadComponent,其数据所在的列的索引不同。选择新条目后立即执行此操作(确保仅在正确的组件选择上触发重新加载)。

关于ios - 带条件的UIPickerView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12587208/

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