UIButtonがタップに反応しない!
ひょっとしてそのボタン、はみだしてませんか?
カスタムビューをつくっていて、ボタンが付いているビューをプログラムからaddしたのだが、
addしたビューのボタンが、タップに反応しない。
どうやら配置したビューのボタンの部分が、親ビューの領域外にはみだしていたからっぽい。
今回は、カスタムビューだったので、以下のメソッドをオーバーライドすることで対応した。
1 2 3 4 5 6 7 8 |
// 領域外のツールチップのイベントに対応する(childViewがaddしたビュー。selfがカスタムビュー。) override func hitTest(_ point: CGPoint, with event: UIEvent?) -> UIView? { let converted: CGPoint = self.childView.convert(point, from: self) if self.childView.bounds.contains(converted) { return self.childView.hitTest(converted, with: event) } return super.hitTest(point, with: event) } |
コメント