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

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

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

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

Swift

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

Q&A

解決済

1回答

880閲覧

Xcode 電卓アプリを作りたい

pluiel

総合スコア3

Xcode

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

Swift

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

0グッド

0クリップ

投稿2020/05/16 05:34

編集2020/05/16 15:40
コード ```### 前提・実現したいこと 電卓アプリの完成 初心者です、初めて3日目です。電卓アプリを作ってみたいと思い、調べながら取り組みましたが、煮詰まってしまいました。エラーはないので、他に追加しなければならないコードがあるのでしょうか...質問規則に沿っていないかもしれません、調べても分からず質問させていただきました...すみません。 ### 発生している問題・エラーメッセージ

ボタンを押しても反応しない
Storyboardでの関連付けは全て確認いたしました。

### 該当のソースコード 以前は書いておりましたが、いろんなコードを参考にしていた為、一度著作権など理解してから書き直したいと思います。 申し訳ありません。 ### 試したこと それぞれの@IBActionの位置を変える。 ### 補足情報(FW/ツールのバージョンなど) Xcode Version.11.4.1 ここにより詳細な情報を記載してください。

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

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

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

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

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

hoshi-takanori

2020/05/16 06:29

もしかして、label の表示領域が小さいままで、表示しても何も見えないとか…。
pluiel

2020/05/16 06:38

御回答ありがとうございます。 Storyboard→inspector→label→linesを増やし labelも引きのばしてみたのですが出来なかったです...
TsukubaDepot

2020/05/16 07:13

面白そうだったので、ソースコードを貼り付け、UI部分は自分で作ってみて動かしてみました。 ざっとみた感じロジックはおかしくなかったのですが、動かしてみた結果やはりきちんと動きました。 ボタンを押しても反応がない、ということですが、たとえば各ボタンを押した時のメソッド内に print(#function) のような行を入れたときに、ボタンなどをおしたらそのメソッド名がきちんと表示されますでしょうか。 これくらいのプロジェクトができるのであればまずあり得ないかと思いますが、たとえばボタン1個を押して何かを表示するプロジェクトを作った場合には、それはきちんと想定通り動かせますでしょうか。
pluiel

2020/05/16 07:34

御回答ありがとうございます。 @IBAction func select1〜9 にprint(#function)を入れて実行してみましたが、メソッド名は表示されませんでした... ボタン1個であれば、想定どおり動かせます。
TsukubaDepot

2020/05/16 08:06

すると、どこかで手順を間違ったかおかしくなった可能性がありそうですね。 Interface BuilderでAssistant Editor(Interface Builderとソースコードが両方みられる、部品を接続するときの表示)にして、各@IBOutlet の左側にある◉印をマウスオーバーしたときに接続した部品が青く選択されるか確認することはできますでしょうか。
pluiel

2020/05/16 09:03

Assistant Editorを開き、関連付けをもう一度やり直しました。 すると動作確認出来ました。 touch up outsideからtouch down に変更した為だと思われます。 タッチイベントについてあまり深く考えずに、関連付けていた自分が甘かったです...ちゃんと計算が出来て、とても嬉しいです。 こんな質問にお付き合いいただき本当にありがとうございました。
TsukubaDepot

2020/05/16 09:10

解決したようでよかったです。 できれば、自己解決ということでご質問を閉じていただければと思います。 本題とは離れますが、せっかく割り算ができるのであれば切り捨てられるのはもったいない気もしました。
pluiel

2020/05/16 09:38

確かにそうですね...考えてみたいと思います。
guest

回答1

0

自己解決

Story boardでの関連付けを、
touch up outsideからtouch downに変更することで解決しました。

投稿2020/05/16 09:40

pluiel

総合スコア3

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

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

hoshi-takanori

2020/05/16 11:26 編集

すでに解決されたようですが、イベントの意味について解説しておきます。 touch down ... ボタンに指が触れた瞬間に発動する touch up outside ... ボタンを押したまま指を動かして、ボタンの外で離した時に発動される touch up inside ... ボタンを押して、そのままボタンの中で指を離したときに発動される https://hajihaji-lemon.com/smartphone/swift/uibutton_event/ 一般的には、ボタンの処理 (特に「決定」や「送信」など) は touch up inside で行うべきとされていて、これはボタンに触った瞬間に間違いに気付いて、指を外に動かすことでキャンセルできるようにするためです。 とはいえ電卓の数値入力なら touch down でもいいかも知れませんね。touch down repeat で連続入力したくなるかも知れませんし。
pluiel

2020/05/16 15:33 編集

丁寧に教えてくださってありがとうございます。 拝見させていただいたサイトもとても分かりやすかったです。これから参考にさせていただきます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問