のサブテーブルビューを追加し、私はこれで少し問題ました:は、テーブルビュー
テーブルビューは、カテゴリおよびカテゴリが表示サブカテゴリ選択時に追加別のテーブルビューを表示するために私のビューに追加されます。しかし、トップセルとの相互作用は認識されず、なぜ私は理解できません!誰もこの問題を解決するためのアイデア、またはそれらのアニメーションを可能にする別の方法として..
コードを表示するために複雑になっているが、私ははっきりと説明しようとします
- メインコントローラが
FilterViewController
継承でありますUIViewController
- 「カテゴリ」行を選択すると、
CategoryFilterViewController
というインスタンスが作成され、ビューがFilterViewController's
ビューに追加されました。 CategoryFilterViewController
で、行が選択されると、新しいtableViewをインスタンス化してビューに追加します。
CategoryViewController storyboard view
FilterViewController
の一部、変数と出口
あなたは、私はプログラム的
var contentViewCatHeightContrain: Constraint? = nil
var contentViewCatBottomContrain: Constraint? = nil
@IBOutlet weak var filterTableView: UITableView!
@IBOutlet weak var submitFilterButton: UIButton!
"カテゴリー" 行が選択されたときは、ここを参照してくださいいくつかの制約を作るためにSnapKitを使用見ることができ、私はこのコードを実行します。
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()
}
}
を見つけるために私を助けている、と答えました。あなたが探していると思うのは、あなたの含まれている 'ViewController'のメインビューに別のtableViewを追加することです。 – ZGski
コードを表示する!おしゃべり – Coder1000
別のtableViewを追加するのではなく、tableViewにいくつかのセルを追加することをお勧めします。 – penatheboss