2017-08-24 27 views
1

私はUIbuttonのイメージとして小さなアイコンを使用します。アイコンのヒット領域を増やして、小さなアイコンをクリックする必要なくIBactionが呼び出されるようにしたい。私はここで似たような質問を見つけました。解決策はインセットを調整することでしたが、これは私にとってはうまくいかないようですが、ヒット領域は変わりません。ボタンのヒットエリアを増やす

smallButton.imageEdgeInsets = UIEdgeInsets(top: -100.0, left: -100.0,bottom: -100.0, right: -100.0) 

smallButton.contentEdgeInsets = UIEdgeInsets(top: -100.0, left: -100.0, bottom: -100.0, right: -100.0) 
+0

自分のイメージアイコンのダブル –

+0

https://stackoverflow.com/questions/42181550/how-can-i-expand-the-hit-area-of-a-specific-uibuttonとして、あなたのボタンサイズの幅を増やします-in-swift https://stackoverflow.com/questions/31056703/how-can-i-increase-the-tap-area-for-uibutton –

答えて

2

あなたは内側(UIButtonまたはカスタムUIViewのをサブクラス化し、ポイントをオーバーライドすることができます:のようなもので:)で:

スウィフト3

override func point(inside point: CGPoint, with _: UIEvent?) -> Bool { 
    let margin: CGFloat = 5 
    let area = self.bounds.insetBy(dx: -margin, dy: -margin) 
    return area.contains(point) 
} 
0

ボタンの高さと幅を増やします。それはあなたのために動作しない場合。

タイトルなしのクリアカラーで、以前のボタンの2倍のサイズの同じボタンを作成することもできます。次に、そのボタンを前のボタンのIBActionに接続します。

注:新しいボタンが前のボタンの前にあることを確認してください。

0

このように、シンプルですが作業方法は少しボタンの上に設定されています。 enter image description here

関連する問題