首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在同一个原型单元中添加XYPieChart和PNBarChart

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

Stack Overflow用户
提问于 2017-05-03 11:06:16
回答 1查看 163关注 0票数 0

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

必须将UIView添加到原型单元格中,UIView的自定义类必须在Xcode中的标识检查器中设置为XYPieChart和PNBarChart。

我所期望的是类似于页面控制器的效果,但是页面控制器加载两个视图控制器。对吗?

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

饼图截图

两行饼图和条形图

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-05-04 06:19:02

尝试这样做,但是代码在Swift中

首先从Storyboard创建Tableviewcontroller

创建CustomCell of TableView

代码语言:javascript
复制
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

代码语言:javascript
复制
 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)
    }

}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43758285

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档