一定条件を満たした時だけ、ビルドをかけた際表示される文字を赤くしたいです。
コードの一部はこのような感じです。
Swift4
1@IBOutlet weak var label: UILabel! 2 @IBOutlet weak var label2: UILabel! 3 @IBOutlet weak var label3: UILabel! 4 5func kaku(str:String,str2:String,kousin:String){ 6 //温度、湿度を値によって色をかえるようにしたい 7 label.text = String(str) 8 //label.textColor = str >= 26 ? .red : .black //エラーでました 9 label2.text = String(str2) 10 //日付け情報修正 11 if kousin == "未取得"{ 12 label3.text = String(kousin) 13 } 14 else{ 15 var kousin = String(kousin.prefix(19)) 16 if let range = kousin.range(of:"T"){ 17 kousin.replaceSubrange(range,with:" ") 18 print(kousin) 19 label3.text = String(kousin) 20 } 21 } 22 23 }
天気APIを使って温度・湿度を取得するまではできています。
26度以上になった時にだけ文字の色を変えたいです。
追記
訳が分からなくなってきたので、相方のプログラマーに聞きました。Stringでなければいけないのは天気APIで温度を持ってくる際、intだとうまくいかないからだそうです。
なんとかキャストを行ってint型に直し、文字の色を変えて欲しいとの事です・・・
何が分からないのでしょうか?
「文字色の変更方法が分からない」という質問でしょうか?
天気APIを用いて温度を取得し、表示させたいです。その表示させる温度が26度以上であった場合、黒文字から赤文字に変更して表示したいです。
26度以下であるならば黒文字のまま表示したいです。
それはあなたがやりたいことです。
この質問では具体的に何を聞いているのでしょうか?
あなたのコードには文字色を変更するコードが書かれていないので、
>>「文字色の変更方法が分からない」という質問でしょうか?
と聞きました。
すみません。そういう事です。
一定の条件を満たした時にだけ色を変える方法がわかりません。
だから、なんで2つの質問をくっつけるのかな。
「一定の条件を満たした時」 → すでにコードに書かれている
「色を変える方法」 → コードに書かれていない
なので、質問は「色を変える方法」でしょ?
ごめんなさい。質問し直します。
し直さなくていいです。もう解決するでしょうから。
したいならこの質問を編集して下さい。
無知で本当にごめんなさい。編集しました。
なんでStringのコード書いてるのやら‥わけわからん。
わたしもお手上げ
相方のプログラマーが書いたものなので私もよくわからないんです・・・
ただ「26度以上になったら色変えて」とだけ言われてるんです。正直なんでstringなのか私もよくわかりません。
int型にしないのか?と聞いたのですが「これじゃないとうまくいかない」と言われるばかりで・・・
JSONか何かをパースしていてInt型にするとJSONと型が一致せずに例外が出るって意味では?
ちなみに文字列から整数への変換はググればすぐでます。
takabosoftさんへの返信とかおかしいでしょ。
「表示がうまくいかなかったのでstring型にしました」って嘘ってこと?
takabosoftさん「Int型に戻せば回答欄のコードは通りますよ。」
あなた「ありがとうございます。試してみます。」
ってやり取りは何だったの?
確認してきました。JSONを使って持ってきた値で合ってるみたいです。Swiftの画面に使って表示をしているらしいのですが、処理に時間がかかるのと、予期せぬnilが検出されてしまい、表示だけができなかったらしいです。
最初に「未取得」と表示しておいて、更新ボタンを押すと温度・湿度を表示させる方法にしたそうです。
その「未取得」を表示させるためにstring型でないとJSONで持ってきた温度・湿度とうまく噛み合わなかった、という事らしいです。
fuzzballさん
嘘ではありません。ちゃんと相方に確認して返ってきた答えです。そのまま書いてしまったために誤解を招いてしまいました。
申し訳ありません。
で、結局何が分からないのでしょうか?
StringからIntへの変換方法ですか?
誤解というより、古いソース(?)を最初に提示したのがまずかったですね。
私の回答は正しかったはずなので。
とりあえず文字列を整数に変換させるコードを書いてください。
var str: String = "37"
var intNum: Int = str.toInt()!
今はこんなコードです。黄色いエラー?警告?が出てます
Swift4じゃないんですか?
前のバージョンの構文でした。直したら動きました。
回答3件
あなたの回答
tips
プレビュー