2016-04-16 8 views
1

この質問のタイトルが適合するかどうかはわかりません。しかし、以下は私が達成したいことです。
私はUIデザインを実装しようとします。トップレイヤーはUITableViewで、バックレイヤーはUIViewです。 UITableViewのセルをタップすると、UIViewが表示されます。ここでは難しい部分ですが、私はUITableViewを右にスライドさせ、UIViewの2/3を公開したいと思います。したがって、UIViewは画面の2/3になります。画面の1/3はUITableViewです。
ここで私が話していたことの画面です。 enter image description hereenter image description here
私はSWRevealViewControllerを試しましたが、正確には私が望むものではありません。
1.セルをタップすると何も起こりません。しかし、私はpanGestureを使って、UITableViewを右にドラッグし、背面のUIViewの2/3を表示することができました。
2.セルから、UIをストロボボードのUIViewにリンクすると、セルをタップするとUIView全体が表示されます。
アイオスとスウィフトを使ったバックビューのアイデア

私はいくつかのアイデアを感謝し、正しい方向に私を指摘します。

+0

テーブルビューの先頭と末尾の制約を調整して画面外に移動する必要があります – Paulw11

+0

@ Paulw11私はあなたの提案をどのように達成できるかわからないので、簡単な例を教えていただければ幸いです。 –

+0

すぐに表示するのは難しいです。基本的には、同じビューコントローラでバックグラウンドビューとテーブルビューを持ち、テーブルビューを上にします。 @IBOutletの制約への参照を作成することができるので、テーブルビューの先頭および末尾の制約の参照を取得できます。次に、行が選択されると、2つの制約の 'constant'プロパティを変更して、テーブルビューを画面外に移動することができます – Paulw11

答えて

0

これを行うには、UIViewの上にUITableViewを追加する方法があります。

最初に、UIViewを背面に追加します(デフォルトでは最初のUIViewにすることもできます)。 次に、UITableViewをUIViewの上に追加します。

yourUIView.frame = self.view.frame; 
self.view.addSubview(yourUIView); 

yourUITableView.frame = self.view.frame; 
self.view.addSubview(yourUITableView); 

その後、セルを選択して、UITableViewを画面の2/3にアニメーション表示します。あなたは制約を使用し、期待通りにテーブルビューで遊ぶことができます

UIView.animateWithDuration(0.5) { 
    yourUITableView.frame = CGRectMake(self.view.frame.size.width/3*2, 0, yourUITableView.frame.size.width, yourUITableView.frame.size.height); 
} 
0

enter image description here

enter image description here

+0

しかしこれは制約を一度しか設定できませんが、正しいですか?それから、私はこれがどのように達成したいのかとは関係がないのか分かりません。 –

+0

にはこの制約のコンセントがあり、定数を変更してテーブルビューを動的に移動します –

関連する問題