Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在iphone中将uipickerview作为子视图添加到mainview?_Iphone_Uipickerview_Subview_Addsubview_Uipicker - Fatal编程技术网

如何在iphone中将uipickerview作为子视图添加到mainview?

如何在iphone中将uipickerview作为子视图添加到mainview?,iphone,uipickerview,subview,addsubview,uipicker,Iphone,Uipickerview,Subview,Addsubview,Uipicker,我有一个应用程序,当用户单击一个按钮时,我想将uipickerview作为主视图的子视图打开,当用户选择一个项目后,它应该从主视图中删除。(下拉式功能)。为此,我编写了如下代码: -(void)showPrefPicker:(id)sender { UIView *subView=[[UIView alloc] init]; subView.frame=CGRectMake(180, 120, 150, 150); pickerView = [[UIPickerView a

我有一个应用程序,当用户单击一个按钮时,我想将uipickerview作为主视图的子视图打开,当用户选择一个项目后,它应该从主视图中删除。(下拉式功能)。为此,我编写了如下代码:

-(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。我如何才能做到这一点呢?有教程或源代码吗?

更好地使用

隐藏

pickerview.hidden=YES;
显示

pickerview.hidden=NO;
你最好用

隐藏

pickerview.hidden=YES;
显示

pickerview.hidden=NO;

尝试将
pickerView
帧更改为

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

尝试将
pickerView
帧更改为

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

在您的代码
subView.frame=CGRectMake(180120150150)
pickerView.frame=CGRectMake(190130100100)

选择器视图是“子视图”的子视图

这里pickerview的帧从子视图的边界开始,即原点x为190。但是子视图的宽度只有150

所以正确的代码是

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

因为pickerview是自定义视图的子视图。它应该在其父视图的框架中。

在您的代码
子视图中。frame=CGRectMake(180、120、150、150)
pickerView.frame=CGRectMake(190130100100)

选择器视图是“子视图”的子视图

这里pickerview的帧从子视图的边界开始,即原点x为190。但是子视图的宽度只有150

所以正确的代码是

pickerView.frame=CGRectMake(0, 0, 100, 100);
因为pickerview是自定义视图的子视图。它应该位于其父视图的框架中