         return true
     }
     
-    func showHideAlbumList() {
-        if isPresentingAlbumListView {
-            UIView.animateWithDuration(0.5, animations: {
-                self.albumListViewController.view.alpha = 0.0
-                self.imageView.willMoveToSuperview(self.view)
-            }) { bool in
-                self.isPresentingAlbumListView = false
-                self.albumListViewController.removeFromParentViewController()
-                self.albumListViewController.view.removeFromSuperview()
-                self.albumListViewController.didMoveToParentViewController(nil)
-            }
+    override func updateViewConstraints() {
+        if self.view.traitCollection.verticalSizeClass == .Regular {
+            horizontalConstraints.forEach   { $0.active = false }
+            verticalConstraints.forEach     { $0.active = true }
         } else {
+            verticalConstraints.forEach     { $0.active = false }
+            horizontalConstraints.forEach   { $0.active = true }
+        }
+        super.updateViewConstraints()
+    }
+    
+    func tapGestureRecognizerFired(gestureRecognizer: UITapGestureRecognizer) {
+        let locationInView = gestureRecognizer.locationInView(self.view)
+        if imageView.frame.contains(locationInView) && self.childViewControllers.isEmpty {
+            // show albumList view
             self.addChildViewController(self.albumListViewController)
             self.albumListViewController.view.alpha = 0.0
             self.imageView.addSubview(self.albumListViewController.view)

    override func viewDidLoad() {
        super.viewDidLoad()
        
        imageView.userInteractionEnabled = true
        let tapGesture = UITapGestureRecognizer(target: self, action: "showHideAlbumList")
        imageView.addGestureRecognizer(tapGesture)
        
        playPauseButton.setImage(UIImage.Asset.Play.image, forState: .Normal)
        playPauseButton.addTarget(self, action: "togglePlayOrPause", forControlEvents: .TouchUpInside)

        prevTrackButton.addTarget(self, action: "togglePrevTrack", forControlEvents: .TouchUpInside)
        
        musPickerButton.setImage(UIImage.Asset.Music.image, forState: .Normal)
        musPickerButton.addTarget(self, action: "presentMusicPicker", forControlEvents: .TouchUpInside)
        
        songTitleLabel.font = .systemFontOfSize(20.0)
