2011-05-26 111 views
1

我有一個應用程序,其中當用戶點擊一個按鈕時,我想打開uipickerview作爲子視圖到主視圖,在用戶選擇一個項目後,它應該從主視圖中刪除(下拉類型的功能)。編寫的代碼如下:如何將uipickerview作爲子視圖添加到iphone的mainview?

-(void)showPrefPicker:(id)sender 
{ 


    UIView *subView=[[UIView alloc] init]; 
    subView.frame=CGRectMake(180, 120, 150, 150); 
    pickerView = [[UIPickerView alloc] init]; 

    pickerView.showsSelectionIndicator = YES; 
    pickerView.dataSource = self; 
    pickerView.delegate = self; 
    pickerView.frame=CGRectMake(190, 130, 100, 100); 
    subView.backgroundColor=[UIColor blackColor]; 
    [subView addSubview:pickerView]; 
    [self.view addSubview:subView]; 
    [pickerView release]; 

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

- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component 
{ 
    NSLog(@"selected object is %@",[arraypref objectAtIndex:row]); 
    //[pickerView ] 
    //mlabel.text= [arrayNo objectAtIndex:row]; 
} 

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

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

而是僅示出了在主視圖中不pickerview.how我可以做到這一點對任何教程或源代碼的子視圖?

回答

1

更好的使用

隱藏

pickerview.hidden=YES; 

顯示

pickerview.hidden=NO; 
0

嘗試改變framepickerView作爲

pickerView.frame = CGRectMake(10,10,100,100); 
0

的在你的代碼subView.frame=CGRectMake(180, 120, 150, 150);pickerView.frame=CGRectMake(190, 130, 100, 100);

選擇器視圖是「子視圖」的一個子視圖

這裏pickerview的幀開始時子視圖即起源x的界限是190,但子視圖的寬度僅爲150。

所以正確的代碼是

pickerView.frame=CGRectMake(0, 0, 100, 100); 

因爲pickerview是一個自定義視圖的子視圖。它應該在其父視圖的框架中。

相關問題