Skip to content →

[Swift] UIButtonの重複タップを防ぐ

例えば、ボタンを押すと登録が行われる処理があったとします。そんな時、ボタンを二度クリックされたくありませんね。

ボタンのダブルクリックを防止

ボタンがタップされた時に以下の処理を行います。ボタンが一度タップされたら、login_btn.enabledでボタンを無効にして、その0.02秒後に有効にしています。こうすることで、パパっとタップされても動きません。

login_btn.enabled = false //login_btnはUIButtonです

let delay = 0.02 * Double(NSEC_PER_SEC)
let time  = dispatch_time(DISPATCH_TIME_NOW, Int64(delay))
dispatch_after(time, dispatch_get_main_queue(), {
    self.login_btn.enabled = true
})

3/5 16:25 追記

もっと確実な方法として、NSURLConnectionを使っている場合は、エラー時のdidFailWithErrorや、完了後のconnectionDidFinishLoadingメソッド内にて、ボタンを有効にするというやり方があります。こちらは、ご意見いただきました。ありがとうございます!

[sc name=”ios”][sc name=”engeneer”]

SHARE

PROFILE

入江 慎吾
Webサービスを作るのが大好きです。制作会社10年→フリーランス→受託をやめサービス開発に専念。プログラミングのメンターサービスMENTAは月間流通額約1,300万を突破🚀 YouTubeでは個人開発について語ってます / 「自分のサービスで生きていく」をコンセプトに個人開発オンラインサロン「入江開発室」を運営(詳しいプロフィール)

Published in 開発奮闘記