Проблемы PNChart и UIStackview при использовании раскадровки
У меня возникли проблемы с использованием библиотеки PNChart ( https://github.com/kevinzhow/PNChart) с раскадровками и обзорными представлениями. Я ожидаю, что диаграмма просто заполнит пространство существующего пользовательского интерфейса, к которому я добавляю pnchart в коде. Однако диаграмма отображается вне экрана, а не в границах пользовательского интерфейса.
Вот скриншот проблемы - обратите внимание, я сделал UIView, что я добавляю диаграмму синим цветом, чтобы я мог видеть, что она имеет правильное расположение. Как вы можете видеть, диаграмма намного больше, чем uiview, к которому она добавлена, и вы не можете видеть элементы y или весь график.
- Графическое представление является 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];
Вот подробности в представлении стека
Любые идеи или рекомендации приветствуются. Я уже связался с разработчиком PNChart.
1 ответ
Вы используете классы размера? Убедитесь, что первый кадр, который вы получаете и используете, действительно является кадром, который вы ожидаете после представления представления. Например, если вы используете Xib, кадр до и после "viewDidApear" различен для каждого размера экрана.
Во-вторых, используйте "clipToBounds", чтобы убедиться, что график не выходит за установленные границы.
self.lineChart.clipsToBounds = YES;
Удачи