を含むUICollectionViewものを作成しています。UICollectionViewCellsUITableView
これはうまく機能し、UICollectionViewCell以外の場所をタップするまではすべて問題ありませんUITableView。これにより、テーブル内のsetHighlightedすべてでメソッドが呼び出されUITableViewCellsます。
以下は のラフスケッチですUICollectionViewCell。唯一のUITableView範囲は「セル 1」から「セル 3」までです。この表の外側で内側をタップするUICollectionViewCellと、セルが強調表示されます。
-------------------------
| Title goes here |
| |
-------------------------
| |
| Cell one |
-------------------------
| |
| Cell two |
-------------------------
| |
| Cell three |
-------------------------
| Button outside table |
|-----------------------|
コール スタックは次のようになります。
[MyTableViewCell setHighlighted:]
[UICellHighlightingSupport highlightView:]
UIApplicationMain
main
UICollectionViewCellハイライトコマンドをすべてのセルに転送するようです。
setHighlightedサブクラスでメソッドをオーバーロードしUITableViewCell、スーパー実装を呼び出さないことで、この問題を回避しました。これは少しハッキーに思えますが、どうにかしてこの動作を回避できるのではないかと思います。
編集:
この動作は、UICollectionCellViewすべての子で setHighlighted を呼び出すときに発生すると想定しています。私が理解していることは、他のほとんどの場合に役立ちます。