質問編集履歴

4

修正:本文

2019/02/04 08:33

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -59,3 +59,11 @@
59
59
  天気APIを使って温度・湿度を取得するまではできています。
60
60
 
61
61
  26度以上になった時にだけ文字の色を変えたいです。
62
+
63
+
64
+
65
+ 追記
66
+
67
+ 訳が分からなくなってきたので、相方のプログラマーに聞きました。Stringでなければいけないのは天気APIで温度を持ってくる際、intだとうまくいかないからだそうです。
68
+
69
+ なんとかキャストを行ってint型に直し、文字の色を変えて欲しいとの事です・・・

3

ソースコード修正

2019/02/04 08:33

投稿

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

2

ソースコード修正

2019/02/04 08:19

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -36,7 +36,7 @@
36
36
 
37
37
  }
38
38
 
39
- if(str > 26){
39
+ if(str >= 26){
40
40
 
41
41
 
42
42
 

1

ソースコード修正

2019/02/04 07:55

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -52,9 +52,9 @@
52
52
 
53
53
 
54
54
 
55
- center.title = NSString.localizedUserNotificationString(forKey: "DSルーム温度管理システム", arguments: nil)
55
+ center.title = NSString.localizedUserNotificationString(forKey: "温度管理システム", arguments: nil)
56
56
 
57
- center.body = NSString.localizedUserNotificationString(forKey: "教室の温度が暑くなっています", arguments: nil)
57
+ center.body = NSString.localizedUserNotificationString(forKey: "部屋の温度が暑くなっています", arguments: nil)
58
58
 
59
59
  center.sound = UNNotificationSound.default()
60
60