如何从 view.window 中删除多个选择器

Posted

技术标签:

【中文标题】如何从 view.window 中删除多个选择器【英文标题】:how to remove multiple picker from the view.window 【发布时间】:2013-02-14 06:25:44 【问题描述】:

在我的应用程序中单击按钮,我将pickerview 添加到下面的窗口中是代码显示

- (IBAction)btnMake:(id)sender

     pickerViewMake = [[UIPickerView alloc] initWithFrame:pickerFrame];
        pickerViewMake.showsSelectionIndicator = YES;
        pickerViewMake.dataSource = self;
        pickerViewMake.delegate = self;
        [pickerViewMake setBackgroundColor:[UIColor clearColor]];

        [viewPicker addSubview:pickerViewMake];


        [self.view.window addSubview:pickerViewMake];
    

-(void)removeAllPicker
   
    [pickerViewMake removeFromSuperview];
    [pickerViewModel removeFromSuperview];
    [pickerViewYear removeFromSuperview];
    [pickerViewTrim removeFromSuperview];

remove all picker是用于从superview中删除picker的方法 有用 问题是在多次单击 btnMake 时选择器视图的数量会向上倾斜 removeallPicker 方法调用比 pickerview 也不会从 superview 中删除。

【问题讨论】:

从代码看来,您添加了两次 pickerViewMake 并且在不同的视图中,为什么?我无法理解。在 removeAllPicker 方法中,您只需将它们从 SuperView 中删除一次。可能这是你的问题 为什么要在两个单独的视图中添加pickerview? 【参考方案1】:

做一件事创建一个 BOOL 变量并在 viewdidload 中设置是,如果是,则检查函数,然后选择器来并在 btnmake 中将其设为否 方法。

【讨论】:

他们没有其他方法可以通过创建 for 循环来删除多个选择器。 这是最简单的方法。 但我有四个选择器用户可以单击选择器重复时间意味着用户将选择年份而不是可以更改它。 所以改变in picker的值或者创建diff-2 picker。【参考方案2】:

按以下方式试试

if (<instance>) 
    
        [<instance> removeFromSuperview],<instance> = nil;
    

创建你的选择器之后,它不会创建多次,它只会创建一次。

【讨论】:

什么是 ??我没有得到 对你来说 将是“pickerViewMake”或“pickerViewModel”等。这意味着你为一个类创建的实例。

以上是关于如何从 view.window 中删除多个选择器的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Code-First EF 4.1 从数据库中删除多个项目

如何从数组中删除随机元素。 Python

从uitableview中选择多行并删除

使用自定义arrayadapter从listview android中删除复选框选择的多个项目

phpmyadmin:从多个表创建的视图现在 id 字段不是唯一的,无法编辑,更新删除

仅从具有多个属性的 HTML 选择中获取新添加和删除的选项?