         
         controller.addChildViewController(self)
         controller.view.addSubview(self.view)
-        self.view.addConstraintsToMatchParent()
+        if let config = self.layoutConstraintConfiguration {
+            config(controller, self)
+        }
+        else {
+            self.view.addConstraintsToMatchParent()
+        }
         
         self.collectionView.reloadData()
         

    // MARK: - Transitions
    /*-------------------------------------------------------------------------------*/
    
    /**
     The duration of present/dismiss transitions
     */

        return cell!
    }
    
    open func collectionView(_ collectionView: CollectionView, didSelectItemsAt indexPaths: Set<IndexPath>) {
        if let ip = indexPaths.first {
            self.delegate?.collectionViewPreview(self, didMoveToItemAt: ip)
        }
    }
    
    // MARK: - Interactive Gesture
    /*-------------------------------------------------------------------------------*/
    
