【发布时间】:2016-09-07 03:37:13
【问题描述】:
我对此有点问题:
在我的视图中添加了一个表格视图以显示类别,并在为显示子类别选择类别时添加另一个表格视图。但是无法识别与顶部单元格的交互,我不明白为什么!如果有人提出解决此问题的想法,或者以其他方式使这些动画成为可能..
代码显示起来很复杂,但我会尽量解释清楚:
- 主控制器是
FilterViewController继承自UIViewController - 选择“类别”行时,会创建
CategoryFilterViewController的实例化并将视图添加到FilterViewController's视图中。 - On the
CategoryFilterViewController, when a row selected, I instantiate new tableView and add it to the view.
CategoryViewController storyboard view
FilterViewController的一部分,变量和出口
您可以看到我使用 SnapKit 以编程方式制作了一些约束
var contentViewCatHeightContrain: Constraint? = nil
var contentViewCatBottomContrain: Constraint? = nil
@IBOutlet weak var filterTableView: UITableView!
@IBOutlet weak var submitFilterButton: UIButton!
You see here, when "Categories" row selected, I run this code.
func displayCat(show: Bool, cell: FilterCell) {
let cellRow = self.filterTableView.indexPathForCell(cell)!
if(cellRow.row == 0) {
if(self.viewModel.categoryContentsView == nil) {
if let vc = self.storyboard?.instantiateViewControllerWithIdentifier("CategoryFilterView") as? CategoryFilterView {
self.viewModel.categoryContentsView = vc
self.viewModel.categoryContentsView.view.frame = CGRectMake(0, self.view.frame.size.height, self.view.frame.size.width, 0)
self.view.addSubview(self.viewModel.categoryContentsView.view)
self.addChildViewController(vc)
self.viewModel.categoryContentsView.view.snp_makeConstraints(closure: { (make) -> Void in
self.contentViewCatHeightContrain = make.height.equalTo(0).constraint
make.left.equalTo(0)
make.right.equalTo(0)
self.contentViewCatBottomContrain = make.bottom.equalTo(0).constraint
})
}
}
self.viewModel.categoryContentsView.view.didMoveToSuperview()
self.view.bringSubviewToFront(self.viewModel.categoryContentsView.view)
}
}
在CategoryViewController,网点:
@IBOutlet weak var catTableView: UITableView!
@IBOutlet weak var topCatTableView: NSLayoutConstraint!
@IBOutlet weak var subCatHeightContrain: NSLayoutConstraint!
@IBOutlet weak var subCatTableView: UITableView!
以及选择的行:
func showHideTableView(show: Bool) {
if(show) {
self.topCatTableView.constant = -75
self.subCatHeightContrain.constant = UIScreen.mainScreen().bounds.size.height - 95
}
else {
self.topCatTableView.constant = 0
self.subCatHeightContrain.constant = 0
self.catTableView.reloadData()
}
}
【问题讨论】:
-
您绝对不想在您现有的 tableView 中添加另一个
UITableView。我认为您要做的是在包含ViewController的主视图中添加另一个 tableView。 -
向我们展示代码!!! PLEASSEEEE !!!
-
我建议在 tableView 上添加更多单元格,而不是添加另一个 tableView
-
@ZGski 我这样做是在主视图上而不是在 tableView 本身上。
-
@penatheboss 是的,这是可能的,但我不认为动画可以和我的一样。