質問編集履歴

3

コード変更

2018/12/12 06:09

投稿

退会済みユーザー
test CHANGED
@@ -1 +1 @@
1
- Timerを一定時間後に止めたい
1
+ Timerを一定時間後に止めたいです
test CHANGED
@@ -6,9 +6,9 @@
6
6
 
7
7
  Timerで5秒ごとに絵を切り替えるプログラミングを作成したのですが、
8
8
 
9
- repeatをfalseにすると動かなくなります。
10
-
11
- これを一通り表示した後、画像切り替えたいです。
9
+ これを一通り表示した後、タイマー止めたいです。
10
+
11
+ if文でどうにかできるかと試しましたが、文自体が悪いのかダメでした。
12
12
 
13
13
  どのように対処すれば良いでしょうか。
14
14
 
@@ -112,15 +112,43 @@
112
112
 
113
113
 
114
114
 
115
+ if count >= 10{
116
+
117
+ timer.invalidate()
118
+
119
+ }
120
+
115
- DispatchQueue.main.asyncAfter(deadline: .now() + 60.0) {
121
+ DispatchQueue.main.asyncAfter(deadline: .now() + 55.0) {
116
-
117
- print("終わり")
118
122
 
119
123
 
120
124
 
125
+ let view07A = UIView()
126
+
127
+ view07A.frame = CGRect(x:0, y:0, width:375, height:669)
128
+
129
+ view07A.backgroundColor = .white
130
+
131
+ self.view = view07A
132
+
133
+
134
+
135
+ let button07A = UIButton()
136
+
137
+ button07A.frame = CGRect(x:90, y:300, width:200, height:50)
138
+
139
+ button07A.setTitle("次へ", for: .normal)
140
+
141
+ button07A.setTitleColor(UIColor.white, for: .highlighted)
142
+
143
+ button07A.layer.cornerRadius = 20.0
144
+
145
+ button07A.backgroundColor = .blue
146
+
147
+ self.view.addSubview(button07A)
148
+
149
+
150
+
121
- }
151
+ }
122
-
123
-
124
152
 
125
153
  }
126
154
 

2

題を変更

2018/12/12 06:09

投稿

退会済みユーザー
test CHANGED
@@ -1 +1 @@
1
- Timerによるリピート表示につ
1
+ Timerを一定時間後止めた
test CHANGED
File without changes

1

質問自体を変えました

2018/12/12 05:07

投稿

退会済みユーザー
test CHANGED
@@ -1 +1 @@
1
- TextFieldが表示できな
1
+ Timerによるリピート表示につ
test CHANGED
@@ -2,27 +2,15 @@
2
2
 
3
3
 
4
4
 
5
- ど初心者です。
6
-
7
- 今クイズのアプリを作成しているのですが、
8
-
9
- 答えを入力してもらうためにTextFieldを使おうと思いましたが、
10
-
11
- エラーが出てしまい実行できないでいます。
12
-
13
- オプショナル型に問題があるというのは分かるのですが、
14
-
15
- 詰まってしまいました。
16
-
17
- この解決方法を教えていただきたいです。
5
+ ど初心者です。ご意見・助言いただければ嬉しいです。
18
-
19
-
20
-
21
- #エラー
6
+
22
-
23
- Fatal error: Unexpectedly found nil while unwrapping an Optional value
7
+ Timerで5秒ごとに絵を切り替えるプログラミングを作成したのですが、
8
+
24
-
9
+ repeatをfalseにすると動かなくなります。
10
+
25
-
11
+ これを一通り表示した後、画像を切り替えたいです。
12
+
13
+ どのように対処すれば良いでしょうか。
26
14
 
27
15
 
28
16
 
@@ -30,141 +18,189 @@
30
18
 
31
19
  ```swift```
32
20
 
33
- import UIKit
21
+
34
-
35
- import PlaygroundSupport
22
+
36
-
37
-
38
-
39
- class ViewContoller_11:UIViewController, UITextFieldDelegate {
40
-
41
-
42
-
43
- var year:UITextField!
23
+ var timer:Timer!
44
-
24
+
25
+
26
+
45
- var month:UITextField!
27
+ var count:Int = 0
46
-
28
+
29
+
30
+
47
- var day:UITextField!
31
+ var dispImageNo = 0
48
-
49
-
50
-
32
+
33
+
34
+
51
- var label11:UILabel!
35
+ var imageView = UIImageView()
36
+
37
+
38
+
39
+
40
+
52
-
41
+ override func loadView() {
42
+
53
- var button11:UIButton!
43
+ let view07A = UIView()
54
-
55
-
56
-
44
+
57
- var data:[String] = ["年","月","日"]
45
+ view07A.frame = CGRect(x:0, y:0, width:375, height:669)
46
+
58
-
47
+ view07A.backgroundColor = .white
48
+
59
-
49
+ self.view = view07A
50
+
51
+
52
+
53
+
54
+
60
-
55
+ }
56
+
57
+
58
+
61
-
59
+ @objc func timerAction(sender:Timer){
60
+
61
+
62
+
63
+ count = count + 1
64
+
65
+
66
+
67
+ dispImageNo = count % 10
68
+
69
+
70
+
71
+ print("カウントダウン")
72
+
73
+
74
+
75
+ pictureView()
76
+
77
+
78
+
79
+
80
+
81
+ }
62
82
 
63
83
  override func viewDidLoad() {
64
84
 
65
85
  super.viewDidLoad()
66
86
 
67
-
68
-
69
-
70
-
71
- let view = UIView()
72
-
73
- view.frame = CGRect(x:0, y:0, width:375, height:669)
74
-
75
- view.backgroundColor = .white
76
-
77
- self.view = view
78
-
79
-
80
-
81
- year.delegate = self
82
-
83
- month.delegate = self
84
-
85
- day.delegate = self
86
-
87
-
88
-
89
- year.keyboardType = UIKeyboardType.numberPad
90
-
91
- year.placeholder = "year"
92
-
93
-
94
-
95
- month.keyboardType = UIKeyboardType.numberPad
96
-
97
- month.placeholder = "month"
98
-
99
-
100
-
101
- day.keyboardType = UIKeyboardType.numberPad
102
-
103
- day.placeholder = "day"
104
-
105
-
106
-
107
- year.addTarget(self, action: #selector(yearFieldDidChange(textField:)), for: UIControl.Event.editingChanged)
108
-
109
-
110
-
111
- month.addTarget(self, action: #selector(monthFieldDidChange(textField:)), for: UIControl.Event.editingChanged)
112
-
113
-
114
-
115
- day.addTarget(self, action: #selector(dayFieldDidChange(textField:)), for: UIControl.Event.editingChanged)
116
-
117
-
118
-
119
-
120
-
121
- }
122
-
123
- @objc func yearFieldDidChange(textField: UITextField) {
124
-
125
- data[0] = "" + year.text!
126
-
127
- }
128
-
129
- @objc func monthFieldDidChange(textField: UITextField) {
130
-
131
- data[1] = "月" + month.text!
132
-
133
- }
134
-
135
- @objc func dayFieldDidChange(textField:UITextField) {
136
-
137
- data[2] = "日" + day.text!
138
-
139
- }
140
-
141
- func buttonTapped(sender: AnyObject) {
142
-
143
- let str = data[0] + "/n" + data[1] + "/n" + data[2]
144
-
145
- label11.text = str
146
-
147
-
148
-
149
- view.endEditing(true)
150
-
151
- }
152
-
153
- func textFieldShouldReturn(_ texField:UITextField) -> Bool {
154
-
155
- let str_11 = data[0] + "/n" + data[1] + "/n" + data[2]
156
-
157
- label11.text = str_11
158
-
159
-
160
-
161
- view.endEditing(true)
162
-
163
-
164
-
165
- return true
166
-
167
-
87
+
88
+
89
+ createTimer()
90
+
91
+
92
+
93
+ }
94
+
95
+
96
+
97
+ func createTimer () {
98
+
99
+
100
+
101
+ timer = Timer.scheduledTimer(timeInterval:5.0,
102
+
103
+ target:self,
104
+
105
+ selector: #selector(ViewController_7A.timerAction(sender:)),
106
+
107
+ userInfo:nil,
108
+
109
+ repeats:true)
110
+
111
+
112
+
113
+
114
+
115
+ DispatchQueue.main.asyncAfter(deadline: .now() + 60.0) {
116
+
117
+ print("終わり")
118
+
119
+
120
+
121
+ }
122
+
123
+
124
+
125
+ }
126
+
127
+ func pictureView() {
128
+
129
+
130
+
131
+ let pictureArray = ["画像",
132
+
133
+ "画像",
134
+
135
+ "画像",
136
+
137
+ "画像",
138
+
139
+ "画像",
140
+
141
+ "画像",
142
+
143
+ "画像",
144
+
145
+ "画像",
146
+
147
+ "画像",
148
+
149
+ "画像"
150
+
151
+ ]
152
+
153
+
154
+
155
+
156
+
157
+ let name = pictureArray[dispImageNo]
158
+
159
+
160
+
161
+ let image = UIImage(named:name)
162
+
163
+
164
+
165
+ self.imageView.image = image
166
+
167
+
168
+
169
+
170
+
171
+ imageView.frame = CGRect(x:0, y:0, width:200, height:300)
172
+
173
+
174
+
175
+ let screenWidth:CGFloat = view.frame.size.width
176
+
177
+ let screenHeight:CGFloat = view.frame.size.height
178
+
179
+
180
+
181
+
182
+
183
+ self.imageView.center = CGPoint(x:screenWidth/2, y:screenHeight/2)
184
+
185
+
186
+
187
+ view.addSubview(self.imageView)
188
+
189
+
190
+
191
+ }
192
+
193
+
194
+
195
+ @objc func tapp(_ sender:UIButton) {
196
+
197
+
198
+
199
+ let nextvc = ViewController_7A()
200
+
201
+
202
+
203
+ self.present(nextvc, animated: true, completion: nil)
168
204
 
169
205
  }
170
206
 
@@ -174,10 +210,4 @@
174
210
 
175
211
  }
176
212
 
177
-
178
-
179
-
180
-
181
- PlaygroundPage.current.liveView = ViewContoller_11()
182
-
183
213
  ```