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

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

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

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

スライダー

GUIのグラフィカルウィジェットのひとつです。インジケーターを動かすことで値を調節可能とします。

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

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

iPhone

iPhoneとは、アップル社が開発・販売しているスマートフォンです。 同社のデジタルオーディオプレーヤーiPodの機能、電話機能、インターネットやメールなどのWeb通信機能の3つをドッキングした機器です。

Q&A

解決済

1回答

1406閲覧

スライダーが動作しない

ken2Mayones5

総合スコア9

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

スライダー

GUIのグラフィカルウィジェットのひとつです。インジケーターを動かすことで値を調節可能とします。

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

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

iPhone

iPhoneとは、アップル社が開発・販売しているスマートフォンです。 同社のデジタルオーディオプレーヤーiPodの機能、電話機能、インターネットやメールなどのWeb通信機能の3つをドッキングした機器です。

0グッド

0クリップ

投稿2020/04/28 05:06

前提・実現したいこと

スライダーを動かしラベルに数値を表示させる。

ここに質問の内容を詳しく書いてください。
アプリ制作を本で勉強を始めたばかりのものです。
本の内容の実習で、ラベルとスライダーを使って、スライダーを動きに対してラベルの方に数値を表示させるものなのですが、一向に動かず行き詰っています。

イメージ説明###

発生している問題・エラーメッセージ

thread 1: Exception: "[<slider.ViewController 0x7f8055f06400> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key showValue."

該当のソースコード

Swift

1 2ソースコード

import UIKit

class ViewController: UIViewController {

@IBOutlet weak var label: UILabel! @IBAction func showVale(_ sender: UISlider){ } override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view. }

}

試したこと

本を参考に、何度もやり直したが、動作しない。

補足情報(FW/ツールのバージョンなど)

初質問で色々質問自体も勘違い手違いしていると思いますが、そもへんも含めて、ご指導お願いします。
ここにより詳細な情報を記載してください。

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

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

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

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

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

guest

回答1

0

ベストアンサー

swift

1@IBOutlet weak var label: UILabel! 2@IBAction func showVale(_ sender: UISlider){

この二つの行の左側が白丸(○)の状態になっていますが、きちんとUI部品との関連づけはされていますでしょうか。

部品が関連づいていれば、中黒の丸になっているはずです。

また、showValeという関数(メソッド)の中には何も記述されていないので、このままでは何も実行されません。
ご自身でスライダの値を取得した上、ラベルに反映させるコードを記述する必要があります。

投稿2020/04/28 05:10

TsukubaDepot

総合スコア5086

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

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

TsukubaDepot

2020/04/28 05:11

ちなみに、参考にされている書籍のタイトルを教えていただけないでしょうか。 もし、私の手持ち書籍にあれば、どのページを見れば良いのかアドバイスできるかもしれません。
ken2Mayones5

2020/04/28 05:26

早速の回答ありがとうございます。 使用している本は、絶対に挫折しないiPhoneアプリ開発「超」入門 第7版で、209ページからの実習になります。 ご指摘のところをやり直し、黒丸を表示させることができ、2行目の次の行に label.text = "(sender.value)" と入力してみたのですが、まだ動く気配がないです。
ken2Mayones5

2020/04/28 05:29

ただ、ちょっと気になるのが入力した"" が赤く表示されたままなので何かミスがあるのでしょうか?
TsukubaDepot

2020/04/28 05:38

そこの記述の通りに行えば動くはずです。 ちなみに、ご質問で提示していただいたコードは間違っていません(私の環境にコピーしたらきちんと動きました)。 動かない、という表現はいくつか解釈できるのですが、 1. シミュレータが起動しない 2. シミュレータが起動したが、画面がかわらない 3. 画面が変わってラベルやスライダが表示されたが、スライダが動かない 4. スライダは動くが、ラベルに数字が表示されない 5. これ以外 のどれになりますでしょうか。
ken2Mayones5

2020/04/28 05:51

2番です。 シュミレーターの画面が白いままでスライダーもラベルも表示されないです。 あと、黄色三角の!マークが出ていたので開いてみました。 すると、、、 Ambiguous Layout Width and horizontal position are ambiguous for "Slider" Main.storyboard とありました。 スライダーに何か問題があるのかと思うのですが、よく分かりません。
TsukubaDepot

2020/04/28 06:01

Ambiguous Layout とは、「(UI部品の)レイアウトが曖昧です」という意味です。 Storyboard上での部品配置には制約をつけていますでしょうか。 ラベルやスライダを、画面のどの位置につけるのか、あるいはどの部品とどれくらい離すのか、という設定です。 とは言っても、私が持ってる第5版だと、制約条件の付け方があまり解説されておらず、それが第7版でも同じなら、制約条件をつけるところで失敗しているのかもしれません。
ken2Mayones5

2020/04/28 06:27

記載されている所を発見しました。 そこを、直し!マークは消えたのですが、やはり動きません。 もう一度、初めからやり直しやり直してみます。
ken2Mayones5

2020/04/28 07:00

これは、エラーなのでしょうか? Exception NSException * "[<slider.ViewController 0x7f94d740dd50> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key slider." 0x00006000008df030
TsukubaDepot

2020/04/28 07:03

実行時エラーですね。 これは、UI部品とコードとがうまく関連づけられていない時に発生する実行時エラーです。
ken2Mayones5

2020/04/28 07:38

コードですか。。。 また、やり直してみます。
ken2Mayones5

2020/04/28 08:23 編集

スライダー側の接続の設定ダイアログが間違っていたようです。 connection を outletのまま  type を Any のまま 使用していたのを Outlet → action any → UI Slider で、スライダーは出てくるようになりエラーメッセージも出ていないのですが、 数字の表示は出てきません。 ちょうど、4番の状態です。
TsukubaDepot

2020/04/28 09:23

label.text = "(sender.value)" が抜けていませんか?
ken2Mayones5

2020/04/28 10:49

それは、しっかり入力しています。 ただ、気になるのが、“”←だけが赤いままなんですが、何か関係ありますか?
ken2Mayones5

2020/04/28 10:55

@IBOutlet weak var label: UILabel! @IBAction func showValue(_ sender: UISlider){ label.text. = “(sender.value)” } で、間違い無いです。
TsukubaDepot

2020/04/28 11:36

上記のコメントですが、ソースコードからコピーアンドペーストしたものでしょうか。 上記のままだと、@が全角、label.text. の最後のドットが余分、"(ダブルクオート)が“(引用符)となっていて、コンパイルすら通らないはずです。 19時49分のコメントも、ダブルクオートではなくて引用符になっていますが、その辺りの間違いはないでしょうか。
ken2Mayones5

2020/04/28 13:19

すみません。 パソコンを閉まってしまい、こちら側の情報だけでも何とか伝えたく思いiPadで入力してしまいました。 真摯に付き合ってもらっていながら、中途半端な情報で誤解を招いてしまった事をお詫びします。 また、時間を作って1字1句見落としが無いか確認してみます。 今回の質問で、だいぶん見落としがあったのを痛感させられたので とても良い勉強をさせてもらいました。 ありがとうございます。 こんな力量なので、相当このサイトにご厄介になると思いますので、今後ともよろしくお願いします。
TsukubaDepot

2020/04/28 13:25

習得がうまくゆかない原因は必ずしも本人にあるわけではなく、書籍にある場合も少なからずあります。 使われている書籍を見た感じだと、ちょっと混乱や見落とされても仕方がないかなという印象はあります。 私はたいしたことはできませんが、それでもお力になれればと思いますので、また質問してみてくださし。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問