質問編集履歴
3
コード変更
title
CHANGED
@@ -1,1 +1,1 @@
|
|
1
|
-
Timerを一定時間後に止めたい
|
1
|
+
Timerを一定時間後に止めたいです
|
body
CHANGED
@@ -2,8 +2,8 @@
|
|
2
2
|
|
3
3
|
ど初心者です。ご意見・助言いただければ嬉しいです。
|
4
4
|
Timerで5秒ごとに絵を切り替えるプログラミングを作成したのですが、
|
5
|
-
repeatをfalseにすると動かなくなります。
|
6
|
-
これを一通り表示した後、
|
5
|
+
これを一通り表示した後、タイマーを止めたいです。
|
6
|
+
if文でどうにかできるかと試しましたが、文自体が悪いのかダメでした。
|
7
7
|
どのように対処すれば良いでしょうか。
|
8
8
|
|
9
9
|
#対象コード
|
@@ -55,11 +55,25 @@
|
|
55
55
|
repeats:true)
|
56
56
|
|
57
57
|
|
58
|
+
if count >= 10{
|
59
|
+
timer.invalidate()
|
60
|
+
}
|
58
|
-
DispatchQueue.main.asyncAfter(deadline: .now() +
|
61
|
+
DispatchQueue.main.asyncAfter(deadline: .now() + 55.0) {
|
59
|
-
print("終わり")
|
60
62
|
|
63
|
+
let view07A = UIView()
|
64
|
+
view07A.frame = CGRect(x:0, y:0, width:375, height:669)
|
65
|
+
view07A.backgroundColor = .white
|
61
|
-
|
66
|
+
self.view = view07A
|
67
|
+
|
68
|
+
let button07A = UIButton()
|
69
|
+
button07A.frame = CGRect(x:90, y:300, width:200, height:50)
|
70
|
+
button07A.setTitle("次へ", for: .normal)
|
71
|
+
button07A.setTitleColor(UIColor.white, for: .highlighted)
|
72
|
+
button07A.layer.cornerRadius = 20.0
|
73
|
+
button07A.backgroundColor = .blue
|
74
|
+
self.view.addSubview(button07A)
|
62
75
|
|
76
|
+
}
|
63
77
|
}
|
64
78
|
func pictureView() {
|
65
79
|
|
2
題を変更
title
CHANGED
@@ -1,1 +1,1 @@
|
|
1
|
-
Timerに
|
1
|
+
Timerを一定時間後に止めたい
|
body
CHANGED
File without changes
|
1
質問自体を変えました
title
CHANGED
@@ -1,1 +1,1 @@
|
|
1
|
-
|
1
|
+
Timerによるリピート表示について
|
body
CHANGED
@@ -1,92 +1,107 @@
|
|
1
1
|
#やりたいこと
|
2
2
|
|
3
|
-
ど初心者です。
|
4
|
-
今クイズのアプリを作成しているのですが、
|
5
|
-
答えを入力してもらうためにTextFieldを使おうと思いましたが、
|
6
|
-
エラーが出てしまい実行できないでいます。
|
7
|
-
オプショナル型に問題があるというのは分かるのですが、
|
8
|
-
詰まってしまいました。
|
9
|
-
|
3
|
+
ど初心者です。ご意見・助言いただければ嬉しいです。
|
4
|
+
Timerで5秒ごとに絵を切り替えるプログラミングを作成したのですが、
|
5
|
+
repeatをfalseにすると動かなくなります。
|
6
|
+
これを一通り表示した後、画像を切り替えたいです。
|
7
|
+
どのように対処すれば良いでしょうか。
|
10
8
|
|
11
|
-
#エラー
|
12
|
-
Fatal error: Unexpectedly found nil while unwrapping an Optional value
|
13
|
-
|
14
|
-
|
15
9
|
#対象コード
|
16
10
|
```swift```
|
11
|
+
|
17
|
-
|
12
|
+
var timer:Timer!
|
18
|
-
import PlaygroundSupport
|
19
|
-
|
20
|
-
class ViewContoller_11:UIViewController, UITextFieldDelegate {
|
21
13
|
|
22
|
-
var year:UITextField!
|
23
|
-
var
|
14
|
+
var count:Int = 0
|
24
|
-
var day:UITextField!
|
25
15
|
|
26
|
-
var
|
16
|
+
var dispImageNo = 0
|
27
|
-
var button11:UIButton!
|
28
17
|
|
29
|
-
var
|
18
|
+
var imageView = UIImageView()
|
30
19
|
|
20
|
+
|
31
|
-
|
21
|
+
override func loadView() {
|
22
|
+
let view07A = UIView()
|
23
|
+
view07A.frame = CGRect(x:0, y:0, width:375, height:669)
|
24
|
+
view07A.backgroundColor = .white
|
25
|
+
self.view = view07A
|
26
|
+
|
27
|
+
|
28
|
+
}
|
29
|
+
|
30
|
+
@objc func timerAction(sender:Timer){
|
31
|
+
|
32
|
+
count = count + 1
|
33
|
+
|
34
|
+
dispImageNo = count % 10
|
35
|
+
|
36
|
+
print("カウントダウン")
|
37
|
+
|
38
|
+
pictureView()
|
39
|
+
|
40
|
+
|
41
|
+
}
|
32
42
|
override func viewDidLoad() {
|
33
43
|
super.viewDidLoad()
|
44
|
+
|
34
|
-
|
45
|
+
createTimer()
|
35
46
|
|
47
|
+
}
|
48
|
+
|
36
|
-
|
49
|
+
func createTimer () {
|
37
|
-
view.frame = CGRect(x:0, y:0, width:375, height:669)
|
38
|
-
view.backgroundColor = .white
|
39
|
-
self.view = view
|
40
50
|
|
51
|
+
timer = Timer.scheduledTimer(timeInterval:5.0,
|
41
|
-
|
52
|
+
target:self,
|
53
|
+
selector: #selector(ViewController_7A.timerAction(sender:)),
|
42
|
-
|
54
|
+
userInfo:nil,
|
43
|
-
|
55
|
+
repeats:true)
|
44
56
|
|
45
|
-
year.keyboardType = UIKeyboardType.numberPad
|
46
|
-
year.placeholder = "year"
|
47
57
|
|
48
|
-
|
58
|
+
DispatchQueue.main.asyncAfter(deadline: .now() + 60.0) {
|
49
|
-
|
59
|
+
print("終わり")
|
60
|
+
|
61
|
+
}
|
50
62
|
|
51
|
-
|
63
|
+
}
|
52
|
-
|
64
|
+
func pictureView() {
|
53
65
|
|
54
|
-
|
66
|
+
let pictureArray = ["画像",
|
67
|
+
"画像",
|
68
|
+
"画像",
|
69
|
+
"画像",
|
70
|
+
"画像",
|
71
|
+
"画像",
|
72
|
+
"画像",
|
73
|
+
"画像",
|
74
|
+
"画像",
|
75
|
+
"画像"
|
76
|
+
]
|
55
77
|
|
56
|
-
month.addTarget(self, action: #selector(monthFieldDidChange(textField:)), for: UIControl.Event.editingChanged)
|
57
78
|
|
58
|
-
|
79
|
+
let name = pictureArray[dispImageNo]
|
59
80
|
|
81
|
+
let image = UIImage(named:name)
|
60
82
|
|
61
|
-
}
|
62
|
-
@objc func yearFieldDidChange(textField: UITextField) {
|
63
|
-
data[0] = "年" + year.text!
|
64
|
-
}
|
65
|
-
@objc func monthFieldDidChange(textField: UITextField) {
|
66
|
-
data[1] = "月" + month.text!
|
67
|
-
}
|
68
|
-
@objc func dayFieldDidChange(textField:UITextField) {
|
69
|
-
data[2] = "日" + day.text!
|
70
|
-
}
|
71
|
-
func buttonTapped(sender: AnyObject) {
|
72
|
-
let str = data[0] + "/n" + data[1] + "/n" + data[2]
|
73
|
-
|
83
|
+
self.imageView.image = image
|
74
84
|
|
85
|
+
|
86
|
+
imageView.frame = CGRect(x:0, y:0, width:200, height:300)
|
87
|
+
|
88
|
+
let screenWidth:CGFloat = view.frame.size.width
|
89
|
+
let screenHeight:CGFloat = view.frame.size.height
|
90
|
+
|
91
|
+
|
92
|
+
self.imageView.center = CGPoint(x:screenWidth/2, y:screenHeight/2)
|
93
|
+
|
75
|
-
view.
|
94
|
+
view.addSubview(self.imageView)
|
95
|
+
|
76
96
|
}
|
97
|
+
|
77
|
-
|
98
|
+
@objc func tapp(_ sender:UIButton) {
|
78
|
-
let str_11 = data[0] + "/n" + data[1] + "/n" + data[2]
|
79
|
-
label11.text = str_11
|
80
99
|
|
81
|
-
|
100
|
+
let nextvc = ViewController_7A()
|
82
101
|
|
83
|
-
|
102
|
+
self.present(nextvc, animated: true, completion: nil)
|
84
|
-
|
85
103
|
}
|
86
104
|
|
87
105
|
|
88
106
|
}
|
89
|
-
|
90
|
-
|
91
|
-
PlaygroundPage.current.liveView = ViewContoller_11()
|
92
107
|
```
|