PNChart和UIStackview使用故事板

时间:2016-06-19 01:55:36

标签: objective-c xcode autolayout xcode-storyboard uistackview

我很难将PNChart(https://github.com/kevinzhow/PNChart)库与故事板和uistackviews一起使用。我期待图表只是填充现有uiview的空间,我正在代码中添加pnchart。然而,图表显示在屏幕外,而不是在uiview的范围内。

以下是问题的截图 - 请注意我已经将UIView添加到蓝色中,因此我可以看到它具有正确的布局。正如您所看到的,图表比添加的uiview要大得多,您无法看到y元素或整个图表。

enter image description here

这是我的故事板结构 enter image description here

  • 图表视图是一个UIView - 我正在添加PNChart作为其子视图。这是我的代码:
CGRect graphViewFrame = _graphView.frame;
PNLineChart * lineChart = [[PNLineChart alloc] initWithFrame:graphViewFrame];
[lineChart setXLabels:@[@"SEP 1",@"SEP 2",@"SEP 3",@"SEP 4",@"SEP 5"]];

// Line Chart No.1
NSArray * data01Array = @[@60.1, @160.1, @126.4, @262.2, @186.2];
PNLineChartData *data01 = [PNLineChartData new];
data01.color = PNFreshGreen;
data01.itemCount = lineChart.xLabels.count;
data01.getData = ^(NSUInteger index) {
        CGFloat yValue = [data01Array[index] floatValue];
        return [PNLineChartDataItem dataItemWithY:yValue];
};
// Line Chart No.2
NSArray * data02Array = @[@20.1, @180.1, @26.4, @202.2, @126.2];
PNLineChartData *data02 = [PNLineChartData new];
data02.color = PNTwitterColor;
data02.itemCount = lineChart.xLabels.count;
data02.getData = ^(NSUInteger index) {
    CGFloat yValue = [data02Array[index] floatValue];
    return [PNLineChartDataItem dataItemWithY:yValue];
};

lineChart.chartData = @[data01, data02];
[lineChart strokeChart];
[_graphView addSubview:lineChart];

以下是堆栈视图的详细信息 enter image description here

任何想法或建议表示赞赏。我已经联系过PNChart的开发者。

1 个答案:

答案 0 :(得分:2)

您使用的是大小等级吗? 检查您获得和使用的第一帧是否是视图显示后您期望的帧。例如,如果您使用Xib,那么#34; viewDidApear"之前和之后的帧。每种屏幕尺寸都不同。

Secound,use" clipToBounds"确保图形没有从你设定的边界中抽出。

self.lineChart.clipsToBounds = YES;
祝你好运