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

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

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

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

Q&A

解決済

2回答

246閲覧

Swift_クリックで画像表示非表示させたい

DrqYuto

総合スコア432

Swift

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

0グッド

0クリップ

投稿2019/01/26 09:46

編集2019/01/28 07:39
import UIKit import AVFoundation class ViewController: UIViewController { @IBOutlet weak var image1: UIImageView! @IBAction func button3(_ sender: UIButton) { image1.image = UIImage(named: "kaka")! let talker = AVSpeechSynthesizer() // 話す内容をセット let utterance = AVSpeechUtterance(string: "kaka") // 言語を日本に設定 utterance.voice = AVSpeechSynthesisVoice(language: "ja-JP") // 実行 talker.speak(utterance) } override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib. }

このコードの画像をボタンクリックで表示非表示させたいです。
以下のコードを追記してもだめでした。

// 表示/非表示を切り替え func changeVisible(visible: Bool) { if visible { label.hidden = false } else { label.hidden = true } }

参考
http://blue-bear.jp/kb/swift-label%E3%82%84view%E3%82%92%E8%A1%A8%E7%A4%BA%E3%83%BB%E9%9D%9E%E8%A1%A8%E7%A4%BA%E3%82%92%E5%88%87%E3%82%8A%E6%9B%BF%E3%81%88%E3%82%8B/

import UIKit import AVFoundation class ViewController: UIViewController { @IBOutlet weak var image1: UIImageView! @IBAction func button3(_ sender: UIButton) { image1.image = UIImage(named: "kaka")! let talker = AVSpeechSynthesizer() // 話す内容をセット let utterance = AVSpeechUtterance(string: "kaka") // 言語を日本に設定 utterance.voice = AVSpeechSynthesisVoice(language: "ja-JP") // 実行 talker.speak(utterance) func changeVisible(visible: Bool) { if visible == true { image1.isHidden = false } else { image1.isHidden = true } } } override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib. } // 表示/非表示を切り替え // func changeVisible(visible: Bool) { // if visible == true { // image1.isHidden = false // } else { // image1.isHidden = true // } // } }

接続されてないのが原因かと思い@IBActionの中に入れてみましたがビルドは通りましたがだめでした。非表示になりませんでした。

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

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

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

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

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

MasakiHori

2019/01/28 01:13

changeVisible(visible:)はどこで呼び出していますか?
DrqYuto

2019/01/28 07:01

import UIKit import AVFoundation class ViewController: UIViewController { @IBOutlet weak var image1: UIImageView! @IBAction func button3(_ sender: UIButton) { image1.image = UIImage(named: "kaka")! let talker = AVSpeechSynthesizer() // 話す内容をセット let utterance = AVSpeechUtterance(string: "kaka") // 言語を日本に設定 utterance.voice = AVSpeechSynthesisVoice(language: "ja-JP") // 実行 talker.speak(utterance) } override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib. } // 表示/非表示を切り替え func changeVisible(visible: Bool) { if visible { image1.isHidden = false } else { image1.isHidden = true } } と下で呼び出してます。
MasakiHori

2019/01/28 07:10

ボタンのクリック(タッチ)と関数(メソッド)呼び出しが結び付けられていません。 関数(メソッド)は宣言/実装と呼び出しが必要です。 あなたが書いているものは宣言/実装です。
fuzzball

2019/01/28 07:10

それをどこで(どこから)呼んでいるのか?と、MasakiHoriさんは聞いています。
DrqYuto

2019/01/28 07:12

なるほど…どうしたらいいでしょうか?
fuzzball

2019/01/28 07:17

コメント入れ違いになって申し訳ないです。 16:10のMasakiHoriさんのコメントを読んで下さい。
DrqYuto

2019/01/28 07:44

>>fuzzball 何度もすみません。読みましたが理解ができませんでした。
fuzzball

2019/01/28 07:45 編集

>>@IBActionの中に入れてみましたが 今のコードでも宣言しているだけで呼び出されていません。 もっと基本的なことを学んで下さい。 >>読みましたが理解ができませんでした。 理解できるように、もっと基本的なことを学んで下さい。
DrqYuto

2019/01/28 07:56

ありがとうございます。勉強します。 たった2日でマスターできるiPhoneアプリ開発集中講座 Xcode 10 Swift 4.2対応 https://www.amazon.co.jp/dp/4802611870?_encoding=UTF8&isInIframe=0&n=465392&ref_=dp_proddesc_0&s=books&showDetailProductDesc=1#product-description_feature_div で勉強しているところですが基礎を学ぶのにおすすめのサイトなどはありますか? ドットインストールのiPhoneアプリはしました。
guest

回答2

0

ベストアンサー

一部切り出しですが。

swift

1 @IBAction func button3(_ sender: UIButton) { 2 3 image1.isHidden.toggle() // 追加 Swift4.2以降 4 5 image1.image = UIImage(named: "kaka")! 6 7 let talker = AVSpeechSynthesizer() 8 // 話す内容をセット 9 let utterance = AVSpeechUtterance(string: "kaka") 10 // 言語を日本に設定 11 utterance.voice = AVSpeechSynthesisVoice(language: "ja-JP") 12 // 実行 13 talker.speak(utterance) 14 }

changeVisible(visible:)メソッドは全部削除してください。 使いません。

投稿2019/01/28 07:12

編集2019/01/28 07:14
MasakiHori

総合スコア3384

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

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

DrqYuto

2019/01/28 07:50

ありがとうございます。できました。
guest

0

labelではなく、image1を指定するのではないでしょうか。

https://stackoverflow.com/questions/30065010/how-to-hide-show-a-button-in-swift
swift3以降でメンバ変数も変わっているようなのでご注意を

投稿2019/01/26 13:37

t_obara

総合スコア5488

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

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

DrqYuto

2019/01/27 06:16

// 表示/非表示を切り替え func changeVisible(visible: Bool) { if visible { image1.isHidden = false } else { image1.isHidden = true } } image1 isHidden に変えてビルドは成功しましたが非表示になりませんでした…
hameji001

2019/01/27 14:56 編集

visibleは visible: Boolと書いてあるので、 visibleにはtrueかflaseが入っているということですよ? わかってますか??? なので、 if visible == true { image1.isHidden = false } else { image1.isHidden = true } なのではないでしょうか??
t_obara

2019/01/28 03:55

上記の回答もそうですし、そもそもご提示されたコードが実行時に呼ばれているかなど、実際にデバッグしてご確認されるとよろしいかと思います。ビルドが通る事がすなわち期待通りの動作になることではありません。
fuzzball

2019/01/28 07:20 編集

>>hameji001さん bool型をtrueやfalseと比較するのはNGだと思います。(そういう主旨のコメントですよね?) (追記:NGと書くと反論喰らいそうなので「NG派です」くらいにしておきます)
DrqYuto

2019/01/28 07:05

>>hamaji001さん こういうことでしょうか? これでも非表示になりませんでした。 // 表示/非表示を切り替え func changeVisible(visible: Bool) { if visible == true { image1.isHidden = false } else { image1.isHidden = true } }
DrqYuto

2019/01/28 07:07

>>t_obara デバッグ時にどこを確認すればよろしいでしょうか?
fuzzball

2019/01/28 07:11

t_obaraさんのコメント読みましたか? >>そもそもご提示されたコードが実行時に呼ばれているか changeVisible(visible:)が呼ばれてないのでは?
DrqYuto

2019/01/28 07:20

changeVisible(visible:)が呼ばれているかはどこを確認すればいいですか? 何度もすみません。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問