如何在同一原型单元格中添加 XYPieChart 和 PNBarChart

Posted

技术标签:

【中文标题】如何在同一原型单元格中添加 XYPieChart 和 PNBarChart【英文标题】:How to add XYPieChart and PNBarChart in same prototype cell 【发布时间】:2017-05-03 11:06:16 【问题描述】:

我的要求很简单。我想在 UITableView 的第一个索引中加载饼图。当我向右滑动时,饼图 (XYPieChart) 应替换为条形图 (PNBarChart)。我在单独的行中分别加载了饼图和条形图。如何在 UITableview 中实现滑动效果?

必须将 UIView 添加到原型单元格中,并且 UIView 的自定义类必须在 Xcode 的 Identity Inspector 中设置为 XYPieChart 和 PNBarChart。

我期望的是像页面控制器一样的效果,但是页面控制器加载了两个视图控制器。对吧?

我可以在原型单元格中添加一个页面控件并将两个 UIView 添加到页面控件中吗? 滑动行时视图会改变吗? 为了清楚起见,我附上了一些截图。

Pie Chart Screenshot

Pie Chart and Bar Chart in two rows

【问题讨论】:

我认为你在问这样的问题,***.com/questions/19185446/… 您可以在表格视图单元格中添加页面控件 @shuvo :但是使用滚动视图只会让我滚动表格行。对?我想要的是滑动效果。就像页面控制器一样。 @BhupatBheda:我可以将 UIViews 而不是视图控制器添加到 tableviewcell 内的页面控件中 做一件事把UIview里面的UIview添加scrollview和pagecontrol 【参考方案1】:

像这样试试 但是代码是用 Swift 编写的

首先从 Storyboard 创建 Tableviewcontroller

创建TableView的CustomCell

import UIKit

class CustomCell: UITableViewCell 


    @IBOutlet weak var scrollView: UIScrollView!
    @IBOutlet weak var pageControll: UIPageControl!
    override func awakeFromNib() 
        super.awakeFromNib()

    

    override func setSelected(_ selected: Bool, animated: Bool) 
        super.setSelected(selected, animated: animated)
    

现在在 Tableviewcontroller 中添加委托 UIScrollViewDelegate,UITableViewDelegate,UITableViewDataSource

 func numberOfSectionsInTableView(tableView: UITableView) -> Int 
    return 1

 func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int 
    return data.count;


func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell 
    let cell:CustomCell = tableView.dequeueReusableCell(withIdentifier: "Cell") as! CustomCell;

    let scrollViewWidth:CGFloat = tableView.frame.width
    let scrollViewHeight:CGFloat = cell.contentView.frame.height
    let imgOne = UIImageView(frame: CGRect(x:0, y:0,width:scrollViewWidth, height:scrollViewHeight))
    imgOne.image = UIImage(named: "image1")
    imgOne.tag = 1
    let imgTwo = UIImageView(frame: CGRect(x:scrollViewWidth, y:0,width:scrollViewWidth, height:scrollViewHeight))
    imgTwo.image = UIImage(named: "image2")
    imgTwo.tag = 1
    cell.scrollView.addSubview(imgOne)
    cell.scrollView.addSubview(imgTwo)

    cell.scrollView.contentSize = CGSize(width:scrollViewWidth * 2, height:cell.scrollView.frame.height)
    cell.scrollView.delegate = self
    cell.pageControll.currentPage = 0
    pageCtrl = cell.pageControll
    return cell;

 func scrollViewDidEndDecelerating(_ scrollView: UIScrollView)
    if (scrollView.superview?.superview as? CustomCell) != nil

        let cell = scrollView.superview?.superview as! CustomCell
        let pageWidth:CGFloat = self.view.frame.width

        let currentPage:CGFloat = floor((scrollView.contentOffset.x - pageWidth/2)/pageWidth)+1

        cell.pageControll.currentPage = Int(currentPage)
    


【讨论】:

以上是关于如何在同一原型单元格中添加 XYPieChart 和 PNBarChart的主要内容,如果未能解决你的问题,请参考以下文章

在iOS中选择单元格时如何以编程方式更改原型单元格中的标签文本颜色和图像

如何在情节提要中向原型 UITableViewCell 添加渐变背景颜色?

UILabel 不在原型单元格中呈现

在 Excel 中计算同一单元格中的累积和

在原型单元格中填充文本字段

在原型表视图单元格中填充文本字段