这是我的故事板。
因此,您可以看到我将主视图背景设置为灰色以进行调试。在里面我有一个视图我称之为'图形视图',它当前就像一个图表的布局指南/容器(子类UIView)。我已经对图表视图进行了约束,因此它(或多或少)居中并且具有可变的宽度/高度,具体取决于设备,在助理编辑器中可以看到如下:
我使用图表视图bounds.height
和bounds.width
初始化图表,但这将是界面构建器中的大小,即568x500。
在我初始化并配置我想要添加到图表视图的图表后,我有以下代码
试图给我的图表子视图提供与图表视图“指南”相同的布局/视觉属性:
lineChart.backgroundColor = [UIColor clearColor];
lineChart.translatesAutoresizingMaskIntoConstraints = NO;
[self.graphView addSubview:lineChart];
NSLayoutConstraint *width =[NSLayoutConstraint
constraintWithItem:lineChart
attribute:NSLayoutAttributeWidth
relatedBy:NSLayoutRelationEqual
toItem:self.graphView
attribute:NSLayoutAttributeWidth
multiplier:1.0
constant:1];
NSLayoutConstraint *height =[NSLayoutConstraint
constraintWithItem:lineChart
attribute:NSLayoutAttributeHeight
relatedBy:NSLayoutRelationEqual
toItem:self.graphView
attribute:NSLayoutAttributeHeight
multiplier:1.0
constant:1];
NSLayoutConstraint *top = [NSLayoutConstraint
constraintWithItem:lineChart
attribute:NSLayoutAttributeTop
relatedBy:NSLayoutRelationEqual
toItem:self.graphView
attribute:NSLayoutAttributeTop
multiplier:1.0f
constant:0.f];
NSLayoutConstraint *leading = [NSLayoutConstraint
constraintWithItem:lineChart
attribute:NSLayoutAttributeLeading
relatedBy:NSLayoutRelationEqual
toItem:self.graphView
attribute:NSLayoutAttributeLeading
multiplier:1.0f
constant:0.f];
[self.graphView addConstraint:width];
[self.graphView addConstraint:height];
[self.graphView addConstraint:top];
[self.graphView addConstraint:leading];
[self.graphView layoutIfNeeded];
[lineChart layoutIfNeeded];
[lineChart strokeChart];
iPhone 5s和iPad Air的结果如下
我希望图表能够完全填满其容器的空间..在iPad中展开,在5s时缩小。 知道我的代码有什么问题吗?
感谢您的帮助!
修改 分别从Debug View Hierarchy iPhone 5s和iPad Air输出。