我的要求很简单。我想在UITableView的第一个索引中加载饼图。当我向右滑动时,饼图(XYPieChart)应该替换为条形图(PNBarChart)。我已经分别加载了饼图和条形图在不同的行。如何在UITableview中实现这种滑动效果?
必须将UIView添加到原型单元格中,UIView的自定义类必须在Xcode中的标识检查器中设置为XYPieChart和PNBarChart。
我所期望的是类似于页面控制器的效果,但是页面控制器加载两个视图控制器。对吗?
我可以在原型单元格中添加一个Page并在页面控件中添加两个UIViews吗?当我滑动行时,视图会改变吗?为了清晰起见,我附上了一些截图。
发布于 2017-05-04 06:19:02
尝试这样做,但是代码在Swift中
首先从Storyboard创建Tableviewcontroller

创建CustomCell of TableView
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)
}
}https://stackoverflow.com/questions/43758285
复制相似问题