コンテンツへスキップ →

[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

無料メルマガ<特典付き>

個人開発・ビジネスについての有益な情報を無料メルマガでお届けします。

特典:個人開発の教科書<心得編>
これまでの個人開発経験を秘伝のタレ的な内容としてエッセンスをまとめました。35ページにわたる大ボリュームです。

個人開発のスキルアップにMENTA

MENTAはいろんなプロに相談できるNo1メンターサービスです。

僕自身もプロダクトの壁打ち・相談にのっています。個人開発でもコードレビュー、セキュリティ面のチェック、デザイン、広告、コンテンツマーケ、SNS集客について相談する、など使えます。

YouTubeでも個人開発ノウハウを発信中!

PROFILE

入江 慎吾
あらゆるスキルが学べるパーソナルメンターサービスMENTAの代表/個人開発が好きでこれまでに30個ほどのWEBサービスやアプリを作ってきました/福岡のWEB制作会社勤務→フリーランスエンジニア→法人立ち上げ→M&A億単位の売却を経験。 (詳しいプロフィール)

カテゴリー: 開発奮闘記