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

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

ただいまの
回答率

90.37%

  • Swift

    9181questions

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

コマのアニメーション

解決済

回答 1

投稿

  • 評価
  • クリップ 0
  • VIEW 235

medamaoyaji

score 10

画像を6つ用意し、スライダーと接続して、コマ送りのアニメーションを作りたいと思っています。

メインストーリーボードにはUIImageとUISliderを載せました。
イメージ説明
コードは

import UIKit

class ViewController: UIViewController {
    @IBOutlet weak var girlRun: UIImageView!

    @IBOutlet weak var mySlider: UISlider!

    @IBAction func runSpeed(_ sender: UISlider) {
        if sender.value == 0{
            girlRun.stopAnimating()
            girlRun.image = UIImage(named: "1")
        }else{
            let sec = sender.maximumValue - sender.value
            girlRun.animationDuration = TimeInterval(sec)
            if !girlRun.isAnimating{
                girlRun.startAnimating()
            }
        }


    }
    func girlImage () -> Array<UIImage>{
    var theArray = Array<UIImage>()
    for num in 1...6{
    let imageName = "1" + String(num)
    let image = UIImage(named:imageName)
    theArray.append(image!)
    }
    return theArray
    }

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
mySlider.minimumValue = 0.0
        mySlider.maximumValue = 5.0
        mySlider.value = 0
        girlRun.animationImages = girlImage()
        girlRun.animationRepeatCount = 0
    }


}


このようにコードを本を見ながら作り、ここではエラーが出ていない状態です。
シュミレーターを起動したところ、
イメージ説明
このようにエラーが出てしまいました。翻訳したところ、「nilがないのにアンラップしている」というニュアンスでした。コードの「!」を外してみたところエラーが出てしまいました。
どうしたらシュミレーターがうまく起動するのかを教えていただけるとありがたいです。

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

checkベストアンサー

+1

let imageName = "1" + String(num)

なぜ1を付けているのでしょうか?
これだと、11 12 13 ... になりませんか?

 追記

Google翻訳

致命的なエラー:オプション値をアンラッピングしている間に予期せずnilが見つかりました

imageがnilなのにアンラップしようとして落ちています。
強制アンラップ(後ろに!付ける書き方)を使わない書き方を勉強して下さい。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • この投稿は削除されました

  • 2018/11/28 15:06

    すいません。解決できました。
    しかし、強制アンラップを使わない方法が勉強不足でわかりません。

    キャンセル

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

  • ただいまの回答率 90.37%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

同じタグがついた質問を見る

  • Swift

    9181questions

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