addSubViewしたUIButtonが押せない
数日間はまったのでメモ
ボタンを表示したい親のViewの(座標的に)上や下にボタンを追加したい場合,次のようにすることがあるだろう.
var button = UIButton()
button.frame = CGRectMake(0, -30, 30, 30)
self.addSubView(button)
しかし,これではうまくいかないことがある.
タッチの判定はボタンを追加した親のViewでまず判定され,次にSubViewへ伝わるため,負の位置にあるボタンを押しても親のViewをタッチせず,押された判定とならないことがある.これは親のViewを変形して,ボタンが範囲外になった場合にも起きる.
これを避けるためには,親のViewの範囲内に配置するほか,mainViewのタッチ判定を用いるなど工夫が必要