   }
 
   open func scroll(to view: UIView, at position: UICollectionViewScrollPosition, animated: Bool) {
-    if let index = views.index(of: view) {
+    if let index = source.map({ $0.0 }).index(of: view) {
       scrollToItem(at: IndexPath(item: index, section: 0), at: position, animated: animated)
     }
   }

    static let width = "me.muukii.StackScrollView.width"
  }

  private(set) open var views: [UIView] = []

  public convenience init() {
    self.init(frame: .zero)


  public func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {

    let view = source[indexPath.item].0

    let width: NSLayoutConstraint = {

