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

入江 慎吾
教える、学べるオンラインメンターサービスMENTAの代表 / 2-30個のサービスをつくり、M&Aで億単位の売却 / 受託開発20年→受託をやめサービス開発に専念→個人開発でつくったMENTAがヒット→ランサーズグループにジョイン / YouTubeで「サービスづくりで生きていく」配信中 / 「自分のサービスで生きていく」をコンセプトに個人開発オンラインサロン「入江開発室」を運営(詳しいプロフィール)

SUBSCRIBE

メールマガジンに登録いただけると、ブログの新着記事をお知らせいたします。(励みにもなります!)また、YouTubeチャンネルでも個人開発・サービスについての情報を発信中です。

SPONSOR

Published in 開発奮闘記