我想用UIPickerView
进行评估,但我简单看不出如何解决这个问题......
此示例与我想要的类似,并且易于理解。我有两个简单的选择器,数字从0到10.然后我有一个文本字段,用户插入一个数字。
我想要的是当用户插入例如7,然后在其中一个选择器中选择一个数字时,如5,其他选择器移动到2,因此总和为7.与0相同和7,3和4.
基本上,如何根据之前插入的输入,根据所选的其他选择器值移动选择器。
非常感谢:)
答案 0 :(得分:0)
尝试一下,假设您有两个UIPickerView
,例如pickerview1
和pickerview2
,那么您可以设置逻辑如下...
注1: - 如果您使用了不同的2 UIPickerView
,请使用以下代码..
- (void)pickerView:(UIPickerView *)thePickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component {
if (thePickerView == pickerview1) {
if ([yourTextfield.text integerValue] > row) {
int selectVal = [yourTextfield.text integerValue] - row ;
[pickerview2 selectRow:selectVal inComponent:0 animated:YES];
}
else{
int selectVal = row - [yourTextfield.text integerValue] ;
[pickerview2 selectRow:selectVal inComponent:0 animated:YES];
}
}
}
如果您在UITextField
7 中输入了值,然后选择pickerview1
的值 5 然后选择其{{{ 1}}数字为row
。
此处当您从 7 中减去 4 后,您设置或选择的行号 3 > { 4
,其值 2 。
注2: - 如果您使用了1 pickerview2
和2个组件,请使用以下代码..
UIPickerView
所以你得到了你想要的确切输出..
我希望你明白了......
享受编码.. :)
答案 1 :(得分:0)
你这样添加数组并重新加载组件:
- (void)pickerView:(UIPickerView *)thePickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component {
if (component == 0) {
club=[[NSString alloc] initWithFormat:@"%@" , [Nations objectAtIndex:row]];
[secondcomponearray addObject club];
[pickerView reloadComponent:1];
}
答案 2 :(得分:0)
从此帖子修改的代码:find pair of numbers in array that add to given sum
下面的代码循环查找可能的对,加起来number
(在文本字段中键入的数字),然后在选择器中选择数字等于对中的一个数字的行。该代码假定您的数据源包含从0到某些总数的数字,按升序排列。
NSInteger number = [[textField text] integerValue];
int i = 0;
int j = number-1
NSMutableArray *possiblePairs = [NSMutableArray array];
while(i < j){
if (i + j == number) {
possiblePairs[] = @[(i), @(j)];
}
else if (a[i] + a[j] < number) i += 1;
else if (a[i] + a[j] > number) j -= 1;
}
[picker1 selectRow:[dataSource indexOfObject:@(i)] inComponent:0];
[picker2 selectRow:[otherDataSource indexOfObject:@(j)] inComponent:0];