TableViewのスクロールに合わせてCollectionViewをスクロールさせたい
TableViewの下にCollectionViewを配置し、
<やりたいこと>
1 TableViewをスクロールさせるとCollectionViewがスクロール
(tableViewのセクションindexをとって、collectionViewではそのindexのitemに移動。例えば、tableView section indexが3であれば、collectionViewのセクション1のitem index3に移動)
2 CollectionViewをスクロールするとTableViewがスクロール
という動作をさせたく、下記のようなコードを書きました。
<問題>
2はうまく動いたのですが、1がうまく動きません。
7行目でブレイクポイントを張ったところ、collectionViewIndexPathはうまく取得できているのですが、collectionViewCellが微動だにしません。
どのようにしたら、うまく動くようになるでしょうか。アドバイスいただけたら幸いです。
スクリーンショット
コード
func scrollViewDidEndDecelerating(scrollView: UIScrollView) {
if scrollView == tableView{
let sectionIndex = self.tableView.indexPathsForVisibleRows![0].section
if self.collectionView.numberOfItemsInSection(1) >= sectionIndex {
let collectionViewIndexPath = NSIndexPath(forRow: sectionIndex, inSection: 1)
self.collectionView.scrollToItemAtIndexPath(collectionViewIndexPath, atScrollPosition: .Top, animated: true)
}
}
if scrollView == collectionView {
let itemIndex = collectionView.indexPathsForVisibleItems()[1].item //{
if self.tableView.numberOfSections > itemIndex {
let tableViewIndexPath = NSIndexPath(forRow: 0, inSection: itemIndex)
self.tableView.scrollToRowAtIndexPath(tableViewIndexPath, atScrollPosition: .Top, animated: true)
}
}
}
Viewの構造
環境
Xcode 7.1 / BaseSDK iOS9.1 / Swift 2.1
Deployment Target iOS8.2
MacOS X 10.11.1(El Capitan)