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

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

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

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

Swift

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

Q&A

2回答

461閲覧

NSLayoutAnchorでフォームを配置したいのにUnable to simultaneously satisfy constraints

退会済みユーザー

退会済みユーザー

総合スコア0

iOS

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

Swift

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

0グッド

0クリップ

投稿2018/08/31 05:49

以下のようなコードを書いています。

swift

1 2class LoginViewController: UIViewController { 3 private let emailTextField = UITextField() 4 5 let formWidth:CGFloat = 300 6 7 override func viewDidLoad() { 8 super.viewDidLoad() 9 10 self.emailTextField.textColor = UIColor.black 11 self.emailTextField.placeholder = "Email" 12 self.emailTextField.frame.size = CGSize(width: formWidth, height: 30) 13 self.view.addSubview(emailTextField) 14 15 self.emailTextField.topAnchor.constraint(equalTo: self.view.topAnchor, constant: 150).isActive = true 16 } 17 18 override func didReceiveMemoryWarning() { 19 super.didReceiveMemoryWarning() 20 } 21}

以下のコードを走らせると以下のようなエラーがでます。

2018-08-31 14:48:24.261045+0900 Apacheek[7087:7743309] [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. (Note: If you're seeing NSAutoresizingMaskLayoutConstraints that you don't understand, refer to the documentation for the UIView property translatesAutoresizingMaskIntoConstraints) ( "<NSAutoresizingMaskLayoutConstraint:0x600000281720 h=--& v=--& UITextField:0x7f999903c200.midY == 15 (active)>", "<NSAutoresizingMaskLayoutConstraint:0x600000281860 h=--& v=--& UITextField:0x7f999903c200.height == 30 (active)>", "<NSLayoutConstraint:0x60800028bc20 V:|-(150)-[UITextField:0x7f999903c200] (active, names: '|':UIView:0x7f9998c37d10 )>", "<NSAutoresizingMaskLayoutConstraint:0x6000002841a0 h=-&- v=-&- 'UIView-Encapsulated-Layout-Top' UIView:0x7f9998c37d10.minY == 0 (active, names: '|':UIWindow:0x7f999b615070 )>" ) Will attempt to recover by breaking constraint <NSLayoutConstraint:0x60800028bc20 V:|-(150)-[UITextField:0x7f999903c200] (active, names: '|':UIView:0x7f9998c37d10 )>

これは何が原因なのでしょうか。

よろしくお願いいたします。

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

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

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

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

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

fuzzball

2018/09/03 00:22

なぜコードに全角文字が混じっているのでしょうか?コードはコピペするようにして下さい。
guest

回答2

0

このエラー自体は、

swift

1self.emailTextField.translatesAutoresizingMaskIntoConstraints = false

で解消できます。
コードでAutolayoutするときは、こうしておかないとAutoresizingと競合します。

投稿2018/09/03 00:28

fuzzball

総合スコア16731

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

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

0

制約を「topAnchor」しかつけていないため、エラーとなっているのではないでしょうか?
StoryBoard上で設定する場合もそうですが、追加する制約が足りないとエラーとなります。
※追加した制約だけでは、位置を特定出来ないためです。

制約の付与は実現したい画面レイアウトにより調整が必要かと思いますが、
例えば、今の実装に左右の制約と高さの制約を追加すればエラー解消出来るかと思います。
※これでX座標とオブジェクトの横幅、高さを特定できるようになるためです。(Y座標はすでに設定しているtopAnchorで特定出来ているはず)

投稿2018/09/02 15:24

Tomochika_Tomo

総合スコア166

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問