UIView内に配置したUIButtonが反応しない場合の対処法
xibファイルで
UIViewController |- UIView |- UIButton
みたいな構成を作成したのですが、
プレビューしてもUIButtonがタップに反応しなくて、めちゃはまりました。
このような問題を生まれた手順
- iPhone5ディスプレイサイズのxibファイルでUIButtonを配置した
- iPhone4ディスプレイサイズのiPhoneシュミレータでプレビューした
- 画面サイズが変わるので、オートレイアウト機能が働きUIViewの大きさが変更された
- UIViewのサイズが変わった =>どうやらUIView.frameの中に無いUIButtonはタップに反応しないらしい
解決策
- xibファイル上でUIViewを選択し、Editorメニュー > Pin > Height を固定
- 要らないcontraintsを削除(例えば、上、左右が定義されているなら下のcontraintsは削除)
で、ディスプレイサイズが変わっても、画面内のUIView.frameの大きさが変わらなくなり、
ちゃんと動くようになりました。