2017-03-01 19 views
0
class PhotoViewController: UIViewController { 

override var prefersStatusBarHidden: Bool { 
    return true 
} 

private var backgroundImage: UIImage 

init(image: UIImage) { 
    self.backgroundImage = image 
    super.init(nibName: nil, bundle: nil) 
    print(image) 
} 

required init?(coder aDecoder: NSCoder) { 
    fatalError("init(coder:) has not been implemented") 
} 

override func viewDidLoad() { 
    super.viewDidLoad() 






    self.view.backgroundColor = UIColor.gray 
    let backgroundImageView = UIImageView(frame: view.frame) 
    backgroundImageView.image = backgroundImage 
    view.addSubview(backgroundImageView) 




    let panGestureRecognizer = UIPanGestureRecognizer(target: self, action: #selector(panGestureRecognizerAction(_:))) 
    self.view.addGestureRecognizer(panGestureRecognizer) 

    let cancelButton = UIButton(frame: CGRect(x: 10.0, y: 10.0, width: 20.0, height: 20.0)) 
    cancelButton.setImage(#imageLiteral(resourceName: "cancel"), for: UIControlState()) 
    cancelButton.addTarget(self, action: #selector(cancel), for: .touchUpInside) 
    let next = UIButton(frame: CGRect(x: (view.frame.width)-90, y: (view.frame.height)-125, width: 70, height: 70)) 
    next.setImage(#imageLiteral(resourceName: "Next"), for: UIControlState()) 
    next.addTarget(self, action: #selector(cancel), for: .touchUpInside) 
    view.addSubview(next) 
    view.addSubview(cancelButton) 
} 




func panGestureRecognizerAction(_ gesture: UIPanGestureRecognizer){ 
    let translation = gesture.translation(in: view) 
    view.frame.origin.y = translation.y 

    if gesture.state == .ended{ 

     if view.frame.origin.y > 100 && view.frame.origin.y < 200{ 
      UIView.animate(withDuration: 0.5, animations: { 

       dismiss(animated: false, completion: nil) 

      }) 
     } else{ 
      UIView.animate(withDuration: 0.3, animations: { 

       self.view.frame.origin = CGPoint(x: 0, y: 0) 
      }) 
     } 
    } 
} 

私が上または下にパンして画像ビューをドラッグすると、私はそれを灰色に指定していましたが、背景は黒です。どのように私の選択した色の背景ができます。任意のより多くの必要な情報が質問に答えるために必要とされている場合は、私は私がするとき、それは私にエラーを与えるbackgroundImageViewそれが移動するために取得できますか代わりにbackgroundImageViewのパンした画像の背景に黒い背景があります。 Swift 3

答えて

1

あなたpanGestureRecognizerActionビューを動かしているように見える

+0

を教えてください私はそれを試みて行います。どうもありがとうございます。 –

+0

ここには良いチュートリアルがあります:https://www.ioscreator.com/tutorials/dragging-views-gestures-tutorial-ios10 ...それに匹敵する変更はほとんどありません「ドラッグ可能な」UIViewを「ドラッグ可能な」UIImageViewにドラッグします。 – DonMag