我的屏幕上有两个tableviews。 1是维护视图,2是第1个tableviewcell里面我正在显示第2个tableview。因此,我可以在显示每个tableview的日期时进行区分。
但是,问题是,一旦我按下第二个tableview单元格数据,我正在重新加载第一个tableview单元格的特定单元格,在那个单元格内我创建了第二个tableview,所以,每当我按下第二个tableview单元格时,第二个tableview就会重复创建并添加到第一个tableviewcell。
因此,代码遵循cellforrowatindexpath委托方法
//第一个tableview委托方法,每当点击第二个tableview单元格数据时多次重新加载此索引路径
else if indexPath.row == 1 {
//some action doing code
//later 2nd tableview creation
//for no of event days like day1, day2 etc
noOfEventDaysTableView = UITableView(frame: CGRect(x:(cell?.secondCircleGraph.frame.maxX)! + 5,y:10,width:60,height:50), style: .plain)
cell?.contentView.addSubview(noOfEventDaysTableView)
noOfEventDaysTableView.register(UITableViewCell.self, forCellReuseIdentifier: "cell")
noOfEventDaysTableView.delegate = self
noOfEventDaysTableView.dataSource = self
noOfEventDaysTableView.backgroundColor = UIColor.clear
noOfEventDaysTableView.separatorColor = UIColor.clear
noOfEventDaysTableView.rowHeight = 20.0
}
在滚动第二个tableview数据时,它就像再次创建单元格一样。 PFA。
如何避免一旦创建第二个tableview,第二个限制再次创建?
我可以通过以下方式避免
noOfEventDaysTableView.removeFromSuperview()
有没有更好的解决方案呢? 有什么建议。谢谢!
答案 0 :(得分:1)
如果要将tableview添加为" addSubview(noOfEventDaysTableView)" in" cellForRowAt indexPath" 。那么请在tableview单元格方法awakeFromNib()中添加它们。
override func awakeFromNib() {
super.awakeFromNib()
noOfEventDaysTableView = UITableView(frame: CGRect(x:(cell?.secondCircleGraph.frame.maxX)! + 5,y:10,width:60,height:50), style: .plain)
cell?.contentView.addSubview(noOfEventDaysTableView)
// Initialization code
}
为了比较,表视图设置tableView
的标记值tableView.tag = 999
答案 1 :(得分:0)
出现此问题是因为出列所以,在添加之前枚举主tableView单元格的 contentView 以检查是否存在任何 UITableView 子视图如果不存在则添加它。 。