技術系備忘録

プログラミング、人工知能、議論などの技術系の設定・使い方などの方法の置き場です.いつも助けてもらっているので誰かの助けになれば

addSubViewしたUIButtonが押せない

数日間はまったのでメモ

ボタンを表示したい親のViewの(座標的に)上や下にボタンを追加したい場合,次のようにすることがあるだろう.

 

var button = UIButton()
button.frame = CGRectMake(0, -30, 30, 30)
self.addSubView(button)

しかし,これではうまくいかないことがある.

タッチの判定はボタンを追加した親のViewでまず判定され,次にSubViewへ伝わるため,負の位置にあるボタンを押しても親のViewをタッチせず,押された判定とならないことがある.これは親のViewを変形して,ボタンが範囲外になった場合にも起きる.

これを避けるためには,親のViewの範囲内に配置するほか,mainViewのタッチ判定を用いるなど工夫が必要