Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 在视图控制器的单个集合视图中显示条形图、饼图、折线图等多个图表的步骤_Ios_Swift_Swift3_Charts_Collectionview - Fatal编程技术网

Ios 在视图控制器的单个集合视图中显示条形图、饼图、折线图等多个图表的步骤

Ios 在视图控制器的单个集合视图中显示条形图、饼图、折线图等多个图表的步骤,ios,swift,swift3,charts,collectionview,Ios,Swift,Swift3,Charts,Collectionview,我的应用程序的要求是,我需要显示不同的图表,如饼图,折线图,条形图等。。在视图控制器的集合视图中。 我计划使用最常用的库来创建图表。要在页面上单独实现每种类型的图表,我们必须创建图表类的UIView。例如,要实现饼图,我们必须创建PieChartView类的视图。 我的问题是,如果我们希望在单个集合视图中显示不同的图表,我们如何实现它?因为我是swift开发新手,所以代码示例将非常有用 提前感谢。假设显示集合视图的视图控制器为claled StatsVC,那么您需要在interface buil

我的应用程序的要求是,我需要显示不同的图表,如饼图,折线图,条形图等。。在视图控制器的集合视图中。 我计划使用最常用的库来创建图表。要在页面上单独实现每种类型的图表,我们必须创建图表类的UIView。例如,要实现饼图,我们必须创建PieChartView类的视图。 我的问题是,如果我们希望在单个集合视图中显示不同的图表,我们如何实现它?因为我是swift开发新手,所以代码示例将非常有用


提前感谢。

假设显示集合视图的视图控制器为claled StatsVC,那么您需要在interface builder中向其添加集合视图,单击collectionViewCell并为其提供重用标识符(例如chartCell),然后在代码中:

类StatcVC:UIViewController、UICollectionViewDelegate、UICollectionViewDataSource{
//在此处创建图表,并将其放入数组中,以便以后更轻松
func collectionView(collectionView:UICollectionView,numberOfItemsInSection:Int->Int{
返回所需的手机号码
}
func collectionView(collectionView:UICollectionView,cellForItemAt indexPath)->UICollectionVIewCell{
如果let cell=collectionView.dequeueReusableCell(标识符为:“chartCell”,表示:indexPath){
cell.addSubView(图表视图[indexPath.row])
返回单元
}否则{
返回UICollectionViewCell()
}}

这是实现此功能的基本方法,但它可能看起来不太漂亮,下一步是创建一个自定义collectionViewCell类,然后在InterfaceBuilder中设计它,然后在ChartCell自定义类(UICollectionVIewCell)中连接插座并在StatsVC中使用此自定义单元格。自定义单元格的优点是,可以在顶部/底部有一个标签,用于描述图表或所需的任何其他UI元素。如果将所有图表视图保留在一个数组中,则可以使用上述方法很容易地将它们添加到collectionView中

更新 要以编程方式创建视图,可以执行以下操作:

让barChartView1=BarChartView()
让barChartView2=BarChartView()
barChartView1.data=…//您在这里做您需要做的事情,我不熟悉您的数据/代码。。。
var chartViews=[barChartView1,barChartView2]

最后,正如您在上面看到的,您可以使用indexPath.row作为数组索引来提取下一个图表视图并将其放入collectionViewCell中。处理集合和表视图并不是一项简单的任务,因此我建议您在Apple library上晚安阅读。Tjios文章对此进行了详细解释。

假设显示ys集合视图被分类为StatsVC,然后您需要在interface builder中向其添加集合视图,单击collectionViewCell并为其提供一个重用标识符(例如chartCell),然后在代码中:

类StatcVC:UIViewController、UICollectionViewDelegate、UICollectionViewDataSource{
//在此处创建图表,并将其放入数组中,以便以后更轻松
func collectionView(collectionView:UICollectionView,numberOfItemsInSection:Int->Int{
返回所需的手机号码
}
func collectionView(collectionView:UICollectionView,cellForItemAt indexPath)->UICollectionVIewCell{
如果let cell=collectionView.dequeueReusableCell(标识符为:“chartCell”,表示:indexPath){
cell.addSubView(图表视图[indexPath.row])
返回单元
}否则{
返回UICollectionViewCell()
}}

这是实现此功能的基本方法,但它可能看起来不太漂亮,下一步是创建一个自定义collectionViewCell类,然后在InterfaceBuilder中设计它,然后在ChartCell自定义类(UICollectionVIewCell)中连接插座并在StatsVC中使用此自定义单元格。自定义单元格的优点是,可以在顶部/底部有一个标签,用于描述图表或所需的任何其他UI元素。如果将所有图表视图保留在一个数组中,则可以使用上述方法很容易地将它们添加到collectionView中

更新 要以编程方式创建视图,可以执行以下操作:

让barChartView1=BarChartView()
让barChartView2=BarChartView()
barChartView1.data=…//您在这里做您需要做的事情,我不熟悉您的数据/代码。。。
var chartViews=[barChartView1,barChartView2]

最后,正如您在上面看到的,您可以使用indexPath.row作为数组索引来提取下一个图表视图并将其放入collectionViewCell中。处理集合和表视图并不是一项简单的任务,因此我建议您在Apple library上晚安阅读。Tjios文章对此进行了详细解释。

感谢您的帮助。但是仅在interface builder中添加视图类。我不知道如何以编程方式添加视图类并将其添加到数组中。您可以与我共享代码示例吗?提前谢谢。@user8986838您得到任何解决方案了吗?谢谢帮助。但是。描述了仅在interface builder中添加视图类。我不知道如何以编程方式添加它y并将其添加到数组中。您能给我分享一下代码示例吗?提前谢谢。@user8986838您有什么解决方案吗?