前提・実現したいこと
Swiftの質問です。
ボタンを押すとFor文の処理が走り、For文で処理している最中にLabelの文字を逐一変えたいです。
しかしうまくいかずFor文の処理が完全に終わるまでLabelは何も変わりません。
ストップウォッチなどのように数字が目にも止まらない速さで変わっていくような描画やアプリのローディング(進捗の%がわかる)のような描画をしたいです。
発生している問題・エラーメッセージ
なし
該当のソースコード
下のソースコードではUITextViewから取得した長い英語の文の単語数を数えるプログラムになっております。
もしお試しになる場合は下のリンクなどからサンプルの英文をコピーしてみてください。
英語文字列長文サンプル
Swift
1 func countWords(){ 2 str = textView.text! 3 let arr:[String] = str.components(separatedBy: " ") 4 5 for i in 0..<arr.count{ 6 let word = arr[i] 7 var count = 0 8 for num in arr { 9 if num == word { 10 count = count + 1 11 } 12 } 13 print(i) 14 print("(word)が(count)個ありました") 15 16 //ここでUIを変更しているのに変わらない 17 totalCountLabel.text = "計(i)個" 18 } 19}
試したこと
クロージャー,コンプレーションハンドラーなどの書き方を試してみましたが、同じ動作で、なかなかうまく行きませんでした。
補足情報(FW/ツールのバージョンなど)
Swift5
ご回答していただけたら本当ありがたいです。
よろしくお願いいたします!
回答1件
あなたの回答
tips
プレビュー