を含むUICollectionView
ものを作成しています。UICollectionViewCells
UITableView
これはうまく機能し、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 を呼び出すときに発生すると想定しています。私が理解していることは、他のほとんどの場合に役立ちます。