2011-05-26 112 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是一个自定义视图的子视图。它应该在其父视图的框架中。

相关问题