2017-02-07 6 views
1

UIViewControllerを1つ使用して、2つのUIView(1つは別のものを重ねて表示)を作成しました。これはすべてstoryboardで行われました。viewcontroller内のUIViewをスワイプ

私は、ジェスチャーコントロール機能を追加しました:のViewControllerクラスのviewDidLoad

-(void) SwipeLeft:(UISwipeGestureRecognizer *) gest_ 
{ 
if (self.view == UIViewFirst) 
    return; 
else 
[self.view bringSubviewToFront:UIViewFirst]; 
} 

-(void) SwipeRight:(UISwipeGestureRecognizer *) gest_ 
{ 
if (self.view == UIViewSecond) 
    return; 
else 
[self.view bringSubviewToFront:UIViewSecond]; 
} 
} 

を、私は単に

[self.view bringSubviewToFront:UIViewFirst] 

は今のビューが思いついたのが、彼らは空白です。私は両方のビューにラベルを付け加えて、そうするかどうかを見ました。ラベルは表示されません。私は間違って何をしていますか? pageControllerpageViewController、またはUIScrollViewのようなものを使用する必要がありますか?私の目標は、コンテンツを含むUIView間でスワイプできるようにすることです(トップハーフビューコントローラ)。

+0

pageviewcontrolerが優れています – GeneCode

答えて

0

UIPageViewControllerは、あなたのためにすべてのトランジションを処理し、素敵で滑らかなアニメーションでもそれを包みます。最初にviewControllersプロパティを設定し、コントローラが次に表示されるビューを知るように2つのデリゲートメソッドを実装するだけです。

public func pageViewController(_ pageViewController: UIPageViewController, viewControllerBefore viewController: UIViewController) -> UIViewController? 

public func pageViewController(_ pageViewController: UIPageViewController, viewControllerAfter viewController: UIViewController) -> UIViewController? 

私の提案は、あなたがUIPageViewControllerのサブクラスを作成し、これらのメソッドを実装することを、このクラスであなたのビューコントローラの弱いインスタンスの配列を維持している、そしてviewDidLoadであなたの配列であることをpageController.viewControllersプロパティを設定し、デリゲートメソッドで扱います現在のインデックスを計算し、それに基づいて次のコントローラを提案する。

実際には、「ビュー」はUIPageViewControllerで動作するように、別のビューコントローラに含まれている必要があります。

さらに詳しい情報が見つかりましたhere

関連する問題