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

質問編集履歴

3

コード変更

2018/12/12 06:09

投稿

退会済みユーザー
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() + 60.0) {
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

題を変更

2018/12/12 06:09

投稿

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

1

質問自体を変えました

2018/12/12 05:07

投稿

退会済みユーザー
title CHANGED
@@ -1,1 +1,1 @@
1
- TextFieldが表示できな
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
- import UIKit
12
+ var timer:Timer!
18
- import PlaygroundSupport
19
-
20
- class ViewContoller_11:UIViewController, UITextFieldDelegate {
21
13
 
22
- var year:UITextField!
23
- var month:UITextField!
14
+ var count:Int = 0
24
- var day:UITextField!
25
15
 
26
- var label11:UILabel!
16
+ var dispImageNo = 0
27
- var button11:UIButton!
28
17
 
29
- var data:[String] = ["年","月","日"]
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
- let view = UIView()
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
- year.delegate = self
52
+ target:self,
53
+ selector: #selector(ViewController_7A.timerAction(sender:)),
42
- month.delegate = self
54
+ userInfo:nil,
43
- day.delegate = self
55
+ repeats:true)
44
56
 
45
- year.keyboardType = UIKeyboardType.numberPad
46
- year.placeholder = "year"
47
57
 
48
- month.keyboardType = UIKeyboardType.numberPad
58
+ DispatchQueue.main.asyncAfter(deadline: .now() + 60.0) {
49
- month.placeholder = "month"
59
+ print("終わり")
60
+
61
+ }
50
62
 
51
- day.keyboardType = UIKeyboardType.numberPad
63
+ }
52
- day.placeholder = "day"
64
+ func pictureView() {
53
65
 
54
- year.addTarget(self, action: #selector(yearFieldDidChange(textField:)), for: UIControl.Event.editingChanged)
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
- day.addTarget(self, action: #selector(dayFieldDidChange(textField:)), for: UIControl.Event.editingChanged)
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
- label11.text = str
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.endEditing(true)
94
+ view.addSubview(self.imageView)
95
+
76
96
  }
97
+
77
- func textFieldShouldReturn(_ texField:UITextField) -> Bool {
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
- view.endEditing(true)
100
+ let nextvc = ViewController_7A()
82
101
 
83
- return true
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
  ```