這可能是一個簡單的問題,但如何將多個組件添加到UIPickerView?我使用NSMutableArray來填充一個組件,但我不知道如何填充其他組件。選中某一行時,我還需要更改標籤的值。 在此先感謝 基蘭如何將多個組件添加到PickerView?
2
A
回答
10
我認爲你是一個初學者。以下是如何實現的方法納喬已經正確地指出:
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView {
// return the number of components required
return 2;
}
您可以使用其他NSMutableArray
的填充成分。假設你有2個部件,分別使用不同的NSMutableArray
即array1
和array2
:
// Return row count for each of the components
- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component {
if (component == 0) {
return [array1 count];
}
else {
return [array2 count];
}
}
// Populate the rows of the Picker
- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component {
// Component 0 should load the array1 values, Component 1 will have the array2 values
if (component == 0) {
return [array1 objectAtIndex:row];
}
else if (component == 1) {
return [array2 objectAtIndex:row];
}
return nil;
}
使用此代碼來更改label
的文字,說selectedValue
當PickerView選擇了值:
- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component {
selectedValue.text = [NSString stringWithFormat: @"%@, %@", [array1 objectAtIndex:[myPicker selectedRowInComponent:0]],[array2 objectAtIndex:[myPicker selectedRowInComponent:1]]];
}
...和你很好去:)
你可能也想看看http://joshhighland.com/blog/2009/09/17/uipickerview-spinning-multiple-components/關於pickerView編程的寶貴提示。
2
您需要設置數據源,並使用
– numberOfComponentsInPickerView:
– pickerView:numberOfRowsInComponent:
設置其委託並使用:
– pickerView:didSelectRow:inComponent:
更改標籤時一定行中的某種成分被選中。很可能的UITableViewDelegate和數據源
,並採取一看就documentation幫助:)
1
而不是component
我發現使用tag
更合適。
然後在代碼:
// returns the # of rows in each component..
- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component{
//NSLog(@"Component_1: %d",pickerView.tag);
if (pickerView.tag == 1)
return [self.arrOpponentTeams count];
else if (pickerView.tag == 2)
return [self.arrMyTeams count];
else
return [self.arrPlayers count];
}
- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component{
//NSLog(@"Component_2: %d",pickerView.tag);
if(pickerView.tag == 1)
return [self.arrOpponentTeams objectAtIndex:row];
else if (pickerView.tag == 2)
return [self.arrMyTeams objectAtIndex:row];
else
return [self.arrPlayers objectAtIndex:row];
}
1
我不知道這是否是有點晚,但我解決了這個法子陣列都有點簡陋,但它可以創造奇蹟你甚至可以把不同顏色以每個陣列
- (void) viewDidLoad {
horPickerArray = @[@"00",@"01",@"02",@"03",@"04",@"05".to..24];
minPickerArray = @[@"00",@"01",@"02",@"03",@"04",@"05".to..59];
secPickerArray = @[@"00",@"01",@"02",@"03",@"04",@"05".to..59];
}
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView
{
return 3;
}
- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component
{
if (component == 0) {
return _HorPickerArray.count ;
}
else if (component == 1) {
return _MinPickerArray.count ;
}
else if (component == 2) {
return _SecPickerArray.count ;
}
}
- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component
{
if (component == 0) {
return [_HorPickerArray objectAtIndex:row];
}
else if (component == 1) {
return [_MinPickerArray objectAtIndex:row];
}
else if (component == 2) {
return [_SecPickerArray objectAtIndex:row];
}
return nil;
}
而在TextField中
打印-(void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component{
_OficialTime.text =[NSString stringWithFormat: @"%@:%@:%@", [_HorPickerArray objectAtIndex:[_TimerPiker selectedRowInComponent:0]],[_MinPickerArray objectAtIndex:[_TimerPiker selectedRowInComponent:1]], [_SecPickerArray objectAtIndex:[_TimerPiker selectedRowInComponent:2]]];
}
相關問題
- 1. 如何添加多個組件到JFrame
- 2. 將多個組件添加到Jframe.getcontentpane()
- 3. 如何將多個組件添加到MainFrame內容
- 4. 如何將組件添加到JDialog的
- 5. 如何將cq:listener添加到組件
- 6. 如何將多個對象添加到一個數組
- 7. 如何將多個「價格」數組添加到一個?
- 8. 如何將一組多個值添加到一個鍵?
- 9. 將多個對象添加到數組
- 10. 將多個項目添加到數組
- 11. 將多個組添加到SignalR ASP.NET
- 12. 如何將UIGestureRecognizer添加到多個UISliders?
- 13. 如何將多個FlowDocumentReaders添加到StackPanel?
- 14. 如何將多個SelectParameters添加到SqlDataSource?
- 15. 如何將多個JComponents添加到JPanel?
- 16. 如何將多個UIBarButtonItem添加到UINavigationBar?
- 17. 如何將多個TileOverlayOptions添加到GoogleMap?
- 18. 如何將多個jar添加到classpath?
- 19. 如何添加多個文件到py2app?
- 20. 將多個聯繫人(電子郵件)添加到UI組件
- 21. 如何將Fabrik元素添加到多個組
- 22. 如何將多個SQL行添加到PHP數組
- 23. 如何將多個對象添加到數組中
- 24. 如何將多個用戶輸入添加到數組中?
- 25. 如何將多個不相關的int值添加到數組
- 26. 如何將多個對象添加到對象內的數組
- 27. 如何將多個值添加到localstorage數組?
- 28. Silverlight:如何將一個Dependency屬性添加到多個控件?
- 29. 如何將多個函數添加到一個文件?
- 30. 如何將多個xsl文件添加到一個