補助ビューは、UICollectionViewCell
ではなく、UICollectionReusableView
(またはそのサブクラス)である必要があります。
とにかく、ボタンが応答しない場合は、先祖のすべてのビューにuserInteractionEnabled
がYES
に設定されていることを確認する必要があります。
(lldb) po [[UIApp keyWindow] recursiveDescription]
リスト内のボタンを見つけて、そのアドレスをコピーします。次に、それと各スーパービューをチェックすることができます。例:
(lldb) p (BOOL)[0xa2e4800 isUserInteractionEnabled]
(BOOL) $4 = YES
(lldb) p (BOOL)[[0xa2e4800 superview] isUserInteractionEnabled]
(BOOL) $5 = YES
(lldb) p (BOOL)[[[0xa2e4800 superview] superview] isUserInteractionEnabled]
(BOOL) $6 = YES
(lldb) p (BOOL)[[[[0xa2e4800 superview] superview] superview] isUserInteractionEnabled]
(BOOL) $8 = YES
(lldb) p (BOOL)[[[[[0xa2e4800 superview] superview] superview] superview] isUserInteractionEnabled]
(BOOL) $9 = YES
(lldb) p (BOOL)[[[[[[0xa2e4800 superview] superview] superview] superview] superview] isUserInteractionEnabled]
(BOOL) $10 = NO
(lldb) po [[[[[0xa2e4800 superview] superview] superview] superview] superview]
(id) $11 = 0x00000000 <nil>
は、ここで私は、ルート(
UIWindow
)までのすべてのビューが
isUserInteractionEnabled
から
YES
を返すことがわかりました。ウィンドウのスーパービューはnilです。
@robmayhoff:問題は私が間違った親をサブクラス化したという事実でした。これをキャッチしていただきありがとうございます! – markdorison
@markdorisonハハ、面白いです。私はそれが本当に問題だとは思っていませんでした。 –
@robmayhoff:私は1つの変更を加えたときと同じくらい驚きました。 – markdorison