我想要實現的是:我有5個不同的UITextfields。我希望用戶能夠使用UIPickerviews填寫這些字段。另外,我希望每個pickerviews都有一個不同的範圍和/或類型的值,可以從每個文本字段中進行選擇。我怎樣纔能有uipickerviews多個數據數組?
我已經嘗試過使用switch語句爲每個文本字段使用不同數組的多個pickerviews。不過,我認爲這不是實現這一目標的最有效方式。有人可以對採用不同的pickerviews數據陣列的最佳實踐有所瞭解嗎?
我想要實現的是:我有5個不同的UITextfields。我希望用戶能夠使用UIPickerviews填寫這些字段。另外,我希望每個pickerviews都有一個不同的範圍和/或類型的值,可以從每個文本字段中進行選擇。我怎樣纔能有uipickerviews多個數據數組?
我已經嘗試過使用switch語句爲每個文本字段使用不同數組的多個pickerviews。不過,我認爲這不是實現這一目標的最有效方式。有人可以對採用不同的pickerviews數據陣列的最佳實踐有所瞭解嗎?
你可以實現你在做什麼,只用一個PickerView的幫助,下面的代碼
-(NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView{
return 1;
}
-(NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component
{
switch (pickerSelected) {
case LANGUAGE:
return [languageArray count];
break;
case GENDER:
return [genderArray count];
break;
case COUNTRY:
return [countryArray count];
break;
case CITY:
return [cityArray count];
break;
default:
return 0;
break;
}
return 0;
}
-(NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component
{
switch (pickerSelected) {
case LANGUAGE:
return [languageArray objectAtIndex:row];
break;
case GENDER:
return [genderArray objectAtIndex:row];
break;
case COUNTRY:
return [[countryArray objectAtIndex:row] countryName];
break;
case CITY:
return [cityArray objectAtIndex:row];
default:
return @"";
break;
}
return nil;
}
凡languageArray
,genderArray
,countryArray
代表你 不同陣列
和pickerSelected
能是一個enum
或int
值,您可以根據不同的UITextField設置值。 每一個的UITextField都有獨特的價值PickerView
以一個陣列可變或不可變按需要和文本框在.m文件聲明。
使用文本字段的委託方法:
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField
{
currentText=textField;
if (textField==yourTextfield)
{
arrCurrent=YourCurrentArray;
[yourTextfield setInputView:pickerObj];
[pickerObj setBackgroundColor:[UIColor whiteColor]];
[yourTextfield setInputAccessoryView:toolObj];
[self pickerView:pickerObj didSelectRow:[pickerObj selectedRowInComponent:0] inComponent:0];
}
else if (textField==yourTextfield2)
{
arrCurrent=YourCurrentArray2;
[yourTextfield2 setInputView:pickerObj];
[pickerObj setBackgroundColor:[UIColor whiteColor]];
[yourTextfield2 setInputAccessoryView:toolObj];
[self pickerView:pickerObj didSelectRow:[pickerObj selectedRowInComponent:0] inComponent:0];
}
}
在pickerView代表:
-(void)pickerView:(UIPickerView *)pickerView didSelectRow:
(NSInteger)row inComponent:(NSInteger)component
{
[currentText setText:[arrCurrent objectAtIndex:row]];
}
- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:
(NSInteger)row forComponent:(NSInteger)component
{
return [arrCurrent objectAtIndex:row];
}
希望能對您有所幫助.. :)
如果什麼對象的類型在每個不同數組和標題不能從單個屬性中檢索? –
@PiyushSharma它只是在textField上工作,因爲只有textfield提供添加inputview ....和作業寫道,他正在使用5 textfield這是我建議他。我剛剛給了tftitle gor的例子。 – Meera
他還寫了'我也希望每個pickerviews都有不同的範圍和/或不同類型的值供每個文本字段選擇。這意味着數組的類型將不同,每個textField –