質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Q&A

解決済

1回答

1304閲覧

Timerを使って5秒ごとに画像を切り替えたい

退会済みユーザー

退会済みユーザー

総合スコア0

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

0グッド

0クリップ

投稿2018/12/05 05:06

編集2018/12/05 05:27

前提・実現したいこと

5秒ごとに自動的に画像が切り替わるというアプリを製作中です。
アプリ自体は動くのですが、画像がうまく表示されていない状況です。
画像が表示終わると、次のViewControllerに写せるようにしていきたいと思っています。
初心者なので、何をどうして良いのかわからずにいます。
教えていただけないでしょうか。

該当のソースコード

lang

1 2 var timer:Timer! 3 4 var count:Int = 0 5 6 var dispImageNo = 0 7 8 var imageView = UIImageView() 9 10 11 override func loadView() { 12 let view07A = UIView() 13 view07A.frame = CGRect(x:0, y:0, width:375, height:669) 14 view07A.backgroundColor = .white 15 self.view = view07A 16 17 let image = UIImage(named:"画像") 18 imageView.image = image 19 self.view.addSubview(imageView) 20 } 21 22 @objc func timerAction(sender:Timer){ 23 24 count = count + 1 25 26 dispImageNo = count % 2 27 28 print("カウントダウン") 29 30 pictureView() 31 32 33 } 34 override func viewDidLoad() { 35 super.viewDidLoad() 36 37 createTimer() 38 } 39 40 func createTimer () { 41 42 timer = Timer.scheduledTimer(timeInterval:5.0, 43 target:self, 44 selector: #selector(ViewController_7A.timerAction(sender:)), 45 userInfo:nil, 46 repeats:true) 47 48 49 50 51 DispatchQueue.main.asyncAfter(deadline: .now() + 3.0) { 52 53 54 print("3秒後に呼ばれます") 55 } 56 } 57 func pictureView() { 58 59 let pictureArray = ["画像", 60 "画像", 61 "画像", 62 "画像" 63 ] 64 65 let name = pictureArray[dispImageNo] 66 67 let image = UIImage(named: name) 68 69 self.imageView.image = image 70 71 let screenWidth:CGFloat = view.frame.size.width 72 let screenHeight:CGFloat = view.frame.size.height 73 74 75 self.imageView.center = CGPoint(x:screenWidth/2, y:screenHeight/2) 76 77 view.addSubview(self.imageView) 78 79 } 80

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2018/12/05 05:28

修正依頼ありがとうございます。手直ししました。
guest

回答1

0

ベストアンサー

imageView.frameを設定し忘れているので設定してください。

投稿2018/12/05 05:47

takabosoft

総合スコア8356

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2018/12/05 07:22

ご回答いただきありがとうございます。 ちなみにですが、配列に組んだ上2つが時間差表示ができたのですが、残りの画像が表示できません。 もしよろしければ教えていただけないでしょうか。
fuzzball

2018/12/05 07:26

「dispImageNo = count % 2」だと、dispImageNo は 0, 1, 0, 1,... となるので、最初の2つしか表示されませんね。
退会済みユーザー

退会済みユーザー

2018/12/05 07:37

ど素人の質問ですみません。 教えていただきありがとうございます。 うまく動きました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問