[Xcode][Swift]ボタンなどの同時タップを禁止する
記事内に広告を含む場合があります。記事内で紹介する商品を購入することで、当サイトに売り上げの一部が還元されることがあります。
こんにちは、@akio0911です。
iOSで、ボタンなどの同時タップを禁止する方法を紹介します。
ボタンを同時タップできてしまうことを確認する
まずは、ボタンを同時タップできてしまうことを確認しましょう。
class ViewController: UIViewController { @IBOutlet weak var button1: UIButton! @IBOutlet weak var button2: UIButton! @IBOutlet weak var button3: UIButton! @IBAction func tapButton1(_ sender: Any) { print(#function) } @IBAction func tapButton2(_ sender: Any) { print(#function) } @IBAction func tapButton3(_ sender: Any) { print(#function) } }
上記のようなコードを書くと、button1をタップしながらbutton2をタップするなどの操作が可能なことが確認できます。
UIViewのisExclusiveTouchプロパティで同時タップを禁止する
次に、先ほどのコードに以下のようなviewDidLoadメソッドを追加してみましょう。
override func viewDidLoad() { super.viewDidLoad() button1.isExclusiveTouch = true }
こうすることで、以下のような操作を行えなくなります。
- button1をタップしながらbutton2やbutton3をタップする
- button2やbutton3をタップしながら、button1をタップする
@akio0911はこう思った。
同時タップを禁止していないと、例えばタップすると他の画面へと遷移するボタンを2つ配置し、両方タップした状態で同時に離すと、2つの画面への遷移が同時に起こってしまったりします。
同時にタップされると困る箇所にはisExclusiveTouchをきちんと設定しておくと良いと思います。
関連記事
この記事が気に入ったら「いいね!」しよう
Follow @arlife_now
Twitterで更新情報をゲット!