teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

4

修正:本文

2019/02/04 08:33

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -28,4 +28,8 @@
28
28
  ```
29
29
 
30
30
  天気APIを使って温度・湿度を取得するまではできています。
31
- 26度以上になった時にだけ文字の色を変えたいです。
31
+ 26度以上になった時にだけ文字の色を変えたいです。
32
+
33
+ 追記
34
+ 訳が分からなくなってきたので、相方のプログラマーに聞きました。Stringでなければいけないのは天気APIで温度を持ってくる際、intだとうまくいかないからだそうです。
35
+ なんとかキャストを行ってint型に直し、文字の色を変えて欲しいとの事です・・・

3

ソースコード修正

2019/02/04 08:33

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -1,44 +1,31 @@
1
- Swift4で温度管理アプリ作っています。26度以上になっら赤い文字で温度を表示、そ以外は別の色で表示したいです。
1
+ 一定条件した時だけ、ビルドかけた際表示る文字を赤くしたいです。
2
2
  コードの一部はこのような感じです。
3
3
 
4
- ```Swift4
4
+ ```Swift4
5
-  @IBOutlet weak var label: UILabel!
5
+ @IBOutlet weak var label: UILabel!
6
6
  @IBOutlet weak var label2: UILabel!
7
7
  @IBOutlet weak var label3: UILabel!
8
+
8
- func kaku(str:Int,str2:Int,kousin:String){
9
+ func kaku(str:String,str2:String,kousin:String){
9
-
10
+ //温度、湿度を値によって色をかえるようにしたい
10
11
  label.text = String(str)
12
+ //label.textColor = str >= 26 ? .red : .black //エラーでました
11
13
  label2.text = String(str2)
14
+ //日付け情報修正
12
- let formatter = DateFormatter()
15
+ if kousin == "未取得"{
13
- formatter.locale = Locale(identifier: "en_US_POSIX")
14
- formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSZZZ'"
15
- if let date = formatter.date(from: kousin ) {
16
- formatter.dateFormat = DateFormatter.dateFormat(fromTemplate: "ydMMM", options: 0, locale: Locale(identifier: "ja_JP"))
17
- let dateStr = formatter.string(from: date).description
18
- label3.text = String("更新日"+dateStr)
16
+ label3.text = String(kousin)
19
17
  }
20
- if(str >= 26){
18
+ else{
21
-
22
- let cent = UNUserNotificationCenter.current()
19
+ var kousin = String(kousin.prefix(19))
23
- cent.requestAuthorization(options: [.alert,.sound,.badge]){
24
- (granted,error)in
25
-
26
- let center = UNMutableNotificationContent()
20
+ if let range = kousin.range(of:"T"){
27
-
28
- center.title = NSString.localizedUserNotificationString(forKey: "温度管理システム", arguments: nil)
29
- center.body = NSString.localizedUserNotificationString(forKey: "部屋の温度が暑くなっています", arguments: nil)
30
- center.sound = UNNotificationSound.default()
21
+ kousin.replaceSubrange(range,with:" ")
31
-
32
- let trigger = UNTimeIntervalNotificationTrigger(timeInterval: 6, repeats: false)
33
- let request = UNNotificationRequest(identifier: "Identifier", content: center, trigger: trigger)
34
-
35
- cent.add(request)
22
+ print(kousin)
36
-
23
+ label3.text = String(kousin)
24
+ }
37
25
  }
38
- }
26
+
39
-
40
27
  }
41
28
  ```
42
- Label型を一度int型にキャスト?をしてから比べて、文字の色を指定すればいいらしいのですが、やり方がわかりません。
29
+
43
- ビューコントローラーの方は、温度を表示させたい画面に遷移するボタンが押されたら温度の数値が出るようになっています。
30
+ 天気APIを使って温度・湿度取得するまではできています。
44
- xcodeバージョンは9.4.1です。
31
+ 26度以上になった時にだけ文字色を変えたいです。

2

ソースコード修正

2019/02/04 08:19

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -17,7 +17,7 @@
17
17
  let dateStr = formatter.string(from: date).description
18
18
  label3.text = String("更新日"+dateStr)
19
19
  }
20
- if(str > 26){
20
+ if(str >= 26){
21
21
 
22
22
  let cent = UNUserNotificationCenter.current()
23
23
  cent.requestAuthorization(options: [.alert,.sound,.badge]){

1

ソースコード修正

2019/02/04 07:55

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -25,8 +25,8 @@
25
25
 
26
26
  let center = UNMutableNotificationContent()
27
27
 
28
- center.title = NSString.localizedUserNotificationString(forKey: "DSルーム温度管理システム", arguments: nil)
28
+ center.title = NSString.localizedUserNotificationString(forKey: "温度管理システム", arguments: nil)
29
- center.body = NSString.localizedUserNotificationString(forKey: "教室の温度が暑くなっています", arguments: nil)
29
+ center.body = NSString.localizedUserNotificationString(forKey: "部屋の温度が暑くなっています", arguments: nil)
30
30
  center.sound = UNNotificationSound.default()
31
31
 
32
32
  let trigger = UNTimeIntervalNotificationTrigger(timeInterval: 6, repeats: false)