2013-04-23 85 views
-1

我是iOs的新手,並試圖將選擇器UI元素動態添加到UI。 在類 - UIPickerView中,我沒有看到任何添加選擇器到視圖的方法。 有沒有人試過這樣做? 非常感謝。iOS:動態添加Picker UI元素

+1

你的意思是你想改變pickerview的內容動態嗎? – 2013-04-23 05:34:31

+0

One and best Ever http://developer.apple.com/library/ios/#documentation/uikit/reference/UIImagePickerController_Class/UIImagePickerController/UIImagePickerController.html – Buntylm 2013-04-23 05:34:36

+0

[self.view addSubview:picker];'?有幾種方法可以整合Picker進行查看。 – 2013-04-23 05:36:58

回答

0

與其他你需要alloc + initWithFrame。

UIPickerView *pickerView = [[UIPickerView alloc] initWithFrame:CGRectMake(0, 100, 0, 0)]; 

然後將其添加到您的目標視圖。

[yourView addSubview:pickerView]; 

此外,你需要設置它委託和數據源,這將顯示所有你的元素在選擇器視圖。

pickerView.dataSource=self; 
pickerView.delegate=self; 

和所有其他自定義爲:

pickerView.showsSelectionIndicator=YES; 

- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component { 
    return [array objectAtIndex:row]; 
} 
0

您添加選擇器視圖就像和UIView的要添加 - > addSubview方法。

UIPickerView *pickerView = [[UIPickerView alloc] initWithFrame:CGRectMake(0,200,320,200,)]]; 
pickerView.delegate = self; 
[self.view addSubview:pickerView]; 

不要忘記設置它的委託並實現它以實現它的功能。

0

我沒有看到添加的選擇器視圖

一個UIPickerView是的UIView的子類的任何方法,讓你用同樣的方法,你會使用任何子視圖添加到視圖,即-addSubview:,像這樣:

UIPickerView *picker = [[UIPickerView alloc] initWithFrame:theFrame]; 
picker.delegate = self; 
picker.dataSource = self; 
[self.view addSubview:picker]; 

我在這裏假設的代碼是在充當了既爲選擇器的委託和數據源視圖控制器。

+0

謝謝大家,這工作。 – 2013-06-25 01:19:09

0

首先將內存分配給您的選取器視圖。

UIPickerView *pickerView = [[UIPickerView alloc] initWithFrame:CGRectMake(0, 265, 320, 216)]; 

然後設置委託和數據源。

pickerView.dataSource=self; 
pickerView.delegate=self; 

之後,添加選擇器視圖到您的主視圖。

[self.view addSubview:pickerView]; 

之後,你應該實現pickerview的方法。

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

- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component 
{  
    return [array count]; 
} 

- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component 
{ 
     return [array objectAtIndex:row]; 
} 

我希望這會正常工作。