0

背景:私はカレンダーを作成しており、そのためにUITableViewとUICollectionViewsを組み合わせています。 UITableViewは月のセルを保持しています。毎月UITableViewCellは、UICollectionViewCell日でUICollectionViewを保持しています。Swift UITableViewCellサブビューはタップを登録しません

問題: UICollectionViewCellsはクリックできません。 私は月UITableViewCellでself.bringSubviewToFront(self.collectionView)を呼び出すことでこれを解決できます。しかしこれにより、collectionViewがトップビューになっているため、UITableViewがスクロールしなくなります。

したがって、UITableViewをスクロールできるようにするか、UICollectionViewをクリックするかを選択できます。

私が試したこと:私はクリックが発生する前にそれをキャプチャして、コレクションビューを前面に持ってきて再度戻しました。ではないが、良い解決策:

//In UITableViewCell class 

//UIGestureRecognizerDelegate 
//Bring collectionView to front before tap 
override func gestureRecognizer(gestureRecognizer: UIGestureRecognizer, shouldReceiveTouch touch: UITouch) -> Bool { 
    self.bringSubviewToFront(self.collectionView) 
    return true 
} 

//UIScrollViewDelegate 
//Bring collectionView to back again 
func collectionView(collectionView: UICollectionView, didSelectItemAtIndexPath indexPath: NSIndexPath) { 
    self.sendSubviewToBack(self.collectionView) 
    //Do stuff 
} 

質問:はどのように私は両方に達成することができますタップ間のビューをスクロールして戻すことなく、UICollectionViewのクリッカブルを持っているし、転送することができますか? UICollectionViewを前面に置いて、UITableViewをスクロール可能にする方法はありますか?

enter image description here enter image description here

+1

テーブルビューとコレクションビューの両方のスクロールの方向は? –

+0

もちろん! self.collectionView.scrollEnabled = false解決しました、あなたを思い出してください! – rilar

答えて

1

同じスクロール方向とネストされたUIScrollViewのは、Appleのヒューマンインターフェイスガイドラインに反していると、これがそうあなたのUICollectionViewのスクロールを無効にしてみてください、あなたのためのアプリでも拒否される可能性があります。

これが役に立ちます。

+0

self.collectionView.scrollEnabled = false解決済みです!どうもありがとうございます! – rilar

+0

お寄せいただきありがとうございます。ではごきげんよう。 –

関連する問題