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

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

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

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

Swift

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

Q&A

解決済

2回答

492閲覧

addTargetの中の処理が呼び出されない

momokoko

総合スコア38

Xcode

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

Swift

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

0グッド

0クリップ

投稿2020/06/27 05:30

編集2020/06/27 07:19

コードのみでStoryboardを使っておりません。
シュミレーターではなく実機でテストしています。

リンク内容
上記の記事を参考に、ボタンをタップするとコンソールにPUSHと表示されるコードを書きましたが、タップしても「PUSH」と出力されません。

import UIKit class ViewController: UIViewController { let plusbtn: UIButton = { let button = UIButton(type: .system) let plusimage = UIImage(named:"plus")! button.setImage(plusimage.withRenderingMode(.alwaysOriginal), for: .normal) return button }() override func viewDidLoad() { super.viewDidLoad() view.addSubview(plusbtn) plusbtn.anchor(top: view.topAnchor, left: view.leftAnchor, bottom: nil, right: view.rightAnchor, paddingTop: 300, paddingLeft: 200, paddingBottom: 0, paddingRight: 20, width: 200, height: 200) plusbtn.addTarget(self, action: #selector(self.countUp), for: .touchUpOutside) } @objc func countUp(){ print("PUSH") } }

以下、コンソールのコードです。
ボタンをタップしても変化ない状態ですが、念の為記載しておきます。

2020-06-27 14:23:27.158218+0900 3CountUpSwfit[2917:185001] [LayoutConstraints] Unable to simultaneously satisfy constraints. Probably at least one of the constraints in the following list is one you don't want. Try this: (1) look at each constraint and try to figure out which you don't expect; (2) find the code that added the unwanted constraint or constraints and fix it. ( "<NSLayoutConstraint:0x283b3c960 H:|-(200)-[UIButton:0x104a1b750](LTR) (active, names: '|':UIView:0x104a1a0e0 )>", "<NSLayoutConstraint:0x283b3c9b0 UIButton:0x104a1b750.right == UIView:0x104a1a0e0.right - 20 (active)>", "<NSLayoutConstraint:0x283b3ca00 UIButton:0x104a1b750.width == 200 (active)>", "<NSLayoutConstraint:0x283b04460 'UIView-Encapsulated-Layout-Width' UIView:0x104a1a0e0.width == 375 (active)>" ) Will attempt to recover by breaking constraint <NSLayoutConstraint:0x283b3ca00 UIButton:0x104a1b750.width == 200 (active)> Make a symbolic breakpoint at UIViewAlertForUnsatisfiableConstraints to catch this in the debugger. The methods in the UIConstraintBasedLayoutDebugging category on UIView listed in <UIKitCore/UIView.h> may also be helpful.

試したこと
・xcodeの再起動

自分で調べてみても解決に至らなかったです。
ご教授いただけると嬉しいです。

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

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

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

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

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

guest

回答2

0

自己解決

plusbtn.addTarget(self, action: #selector(self.countUp), for: .touchUpOutside)
の場所のtouchUpOutsideをtouchUpInside
に変更したら直りました。
以下の記事が参考になりました。
リンク内容

投稿2020/06/27 07:24

編集2020/06/27 07:30
momokoko

総合スコア38

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

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

0

touchUpOutsideはボタンを押して、ボタンの外で指を離した時に呼ばれます。
ボタンを押してそのまま離して反応させたいならtouchUpInsideを使うと良いでしょう。
「リンク内容」のページもそのようになっているはずです。

投稿2020/06/27 07:23

tmsah

総合スコア101

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

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

momokoko

2020/06/27 07:25

ありがとうございます。 ぼくもそのミスにいま気づきました。 ご指摘の箇所の修正でうまく行きました。 ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問