2017-07-04 13 views
0

私はすぐにプロジェクトを作成しようとしています。スワイプとスワイプでUIViewを表示して消えるようにする - スウィフト

UIViewをスワイプして表示して消滅させ、画面上をスワイプさせようとしています。私は現在、構造体を使用して、swipeUp()メソッドとswipeDown()メソッドの両方で変更できるように、ビューのインスタンスを格納しています。

私はthis.view.bounds.heightにアクセスしようとすると、それは「インスタンスメンバビューがタイプSecondViewController上で使用することはできません」

以下

を私に語ったが、私のコードでは、あなたはどちらか、

import UIKit 
import FBSDKCoreKit 
import FBSDKLoginKit 
import FBSDKShareKit 




class SecondViewController: UIViewController { 

let label = UILabel() 


override func viewDidLoad() { 
    super.viewDidLoad() 

    let swipeUp = UISwipeGestureRecognizer(target: self, action: "swipeUp") 
    swipeUp.direction = UISwipeGestureRecognizerDirection.up 
    self.view.addGestureRecognizer(swipeUp) 

    let swipeDown = UISwipeGestureRecognizer(target: self, action: "swipeDown") 
    swipeDown.direction = UISwipeGestureRecognizerDirection.down 
    self.view.addGestureRecognizer(swipeDown) 


} 

struct myVars{ 

    let v = MyCustomView(frame: CGRect(x: 0, y: this.view.bounds.height/2, width: this.view.bounds.width, height: self.view.bounds.height/2)) 

} 


func swipeUp(){ 

    if myVars.v.isDescendantOfView(self) { 

     myVars.v.isHidden = false 

    } 

    else { 
     self.view.addSubview(myVars.v) 
    } 



} 

func swipeDown(){ 
    myVars.v.isHidden = true 
} 




} 

てくださいすることができています私のコードに何が間違っているか教えてください。あるいは、これをもっと良い方法があれば教えてください。

+0

の名前を入れて? –

答えて

0

ちょうどあなたのコードを置き換えてください以下のコードでそれは動作します。 #selectorの代わりに (ViewController.swipeUp)は、ビュー階層内の任意のビューにごmyVars.vを追加しましたあなたのViewController

let swipeUp = UISwipeGestureRecognizer(target: self, action: #selector(ViewController.swipeUp)) 
      swipeUp.direction = UISwipeGestureRecognizerDirection.up 
      self.view.addGestureRecognizer(swipeUp) 



let swipeDown = UISwipeGestureRecognizer(target: self, action: #selector(ViewController.swipeDown)) 
       swipeDown.direction = UISwipeGestureRecognizerDirection.down 
       self.view.addGestureRecognizer(swipeDown) 
関連する問題