VBPIECHART-删除FromSuperView不起作用(隐藏图)



我正在使用目标C语言使用VBPIECHART。我正在分段控件的valueChange上显示图表,例如:

- (IBAction)segmentControlAction:(UISegmentedControl *)sender
    {
    switch ([sender selectedSegmentIndex])
    {
        case 0:
            [self showPieChart:NO];
            _tableViewForCount.hidden = NO;
            [_tableViewForCount reloadSections:[NSIndexSet indexSetWithIndex:0] withRowAnimation:UITableViewRowAnimationRight];
            break;
        case 1:
            _tableViewForCount.hidden = YES;
            [self showPieChart:YES];
            break;
        default:
            NSLog(@"None");
            break;
    }
}

showPieChart方法呈:

- (void) showPieChart:(Boolean)visible
{
    VBPieChart *chart = [[VBPieChart alloc] initWithFrame:CGRectMake(0, 0, 250, 250)];
    chart.center = self.view.center;
    // Setup some options:
    [chart setHoleRadiusPrecent:0.3]; /* hole inside of chart */
    // Prepare your data
    NSMutableArray *chartValues = [[NSMutableArray alloc]initWithObjects:                             @{@"name":@"Apples", @"value":@50, @"color":[UIColor redColor]},
                             @{@"name":@"Pears", @"value":@20, @"color":[UIColor blueColor]},
                             @{@"name":@"Oranges", @"value":@40, @"color":[UIColor orangeColor]},
                             @{@"name":@"Bananas", @"value":@70, @"color":[UIColor purpleColor]}, nil
                             ];

    if (visible)
    {
        chart.center = self.view.center;
        // Present pie chart with animation
        [chart setChartValues:chartValues animation:YES duration:0.4 options:VBPieChartAnimationFan];
        [self.view addSubview:chart];
    }
    else
    {
        // remove chart
        [chart removeFromSuperView];
    }
}

由于VBPieChart只是Uiview的自定义子类,因此应该有效。但是我没有任何成功。

我还尝试了[chart setHidden:YES];以及[chart setAlpha:0.0];,但仍然没有运气。

任何帮助将不胜感激。当用户切换回细分索引0时,我只想隐藏/删除图表。

谢谢。

vbpiechart *图表在.h文件上创建此对象然后

- (void) showPieChart:(Boolean)visible
{
    if(chart == nil)
    {
        chart = [[VBPieChart alloc] initWithFrame:CGRectMake(0, 0, 250, 250)];
        [self.view addSubview:chart];
    }
    chart.center = self.view.center;
    // Setup some options:
    [chart setHoleRadiusPrecent:0.3]; /* hole inside of chart */
    // Prepare your data
    NSMutableArray *chartValues = [[NSMutableArray alloc]initWithObjects:                             @{@"name":@"Apples", @"value":@50, @"color":[UIColor redColor]},
                             @{@"name":@"Pears", @"value":@20, @"color":[UIColor blueColor]},
                             @{@"name":@"Oranges", @"value":@40, @"color":[UIColor orangeColor]},
                             @{@"name":@"Bananas", @"value":@70, @"color":[UIColor purpleColor]}, nil
                             ];

    if (visible)
    {
        chart.center = self.view.center;
        // Present pie chart with animation
        [chart setChartValues:chartValues animation:YES duration:0.4 options:VBPieChartAnimationFan];
        chart.alpa = 1.0
    }
    else
    {
        // remove chart
        chart.alpa = 0.0
    }
}

您需要如下创建变量。

 static  VBPieChart *chart = nil
 if(!chart)
  chart  = [[VBPieChart alloc] initWithFrame:CGRectMake(0, 0, 250, 250)];
    }
   if (visible)
    {
        chart.hidden = NO;
    }
    else
    {
        // hide chart
        chart.hidden = YES;
    }

最新更新