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

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

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

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

Xcode

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

Q&A

解決済

1回答

2343閲覧

NSLayoutConstraintを使ってaddSubviewで親と同じサイズにしたい。

u-ta

総合スコア60

iOS

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

Xcode

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

0グッド

0クリップ

投稿2017/11/15 11:54

編集2017/11/16 03:05

###前提・実現したいこと
NSLayoutConstraintを使ってaddSubviewで親と同じサイズにしたい。

StoryBordでサイズを決めてあるView(ViewA)に
Swiftで作成したWebView(ViewB)をaddSubviewして
ViewAと同じサイズにしたい。

###該当のソースコード

ViewAはStoryBord上でSafeAreaと制約を持たせています。

swift

1 2self.ViewA.translatesAutoresizingMaskIntoConstraints = false 3self.ViewA.addConstraints([ 4 NSLayoutConstraint( 5 item: ViewB, 6 attribute: .top, 7 relatedBy: .equal, 8 toItem: self.ViewA, 9 attribute: .top, 10 multiplier: 1.0, 11 constant: 0 12 ), 13 NSLayoutConstraint( 14 item: ViewB, 15 attribute: .leading, 16 relatedBy: .equal, 17 toItem: self.ViewA, 18 attribute: .leading, 19 multiplier: 1.0, 20 constant: 0 21 ), 22 NSLayoutConstraint( 23 item: ViewB, 24 attribute: .trailing, 25 relatedBy: .equal, 26 toItem: self.ViewA, 27 attribute: .trailing, 28 multiplier: 1.0, 29 constant: 0 30 ), 31 NSLayoutConstraint( 32 item: ViewB, 33 attribute: .height, 34 relatedBy: .equal, 35 toItem: self.ViewA, 36 attribute: .height, 37 multiplier: 1.0, 38 constant: 0 39 ),] 40)

###補足情報(言語/FW/ツール等のバージョンなど)
swift4, iOS10.0

###発生している問題

添付の画像のWebviewと名前が付いている物がViewAになります。

SafeArea内のStackViewに
header用ViewとViewAが入っていますが
上記のコードでaddSubviewするとHeadが消えて
ViewAに追加したWebView(ViewB)だけになってしまいます。

イメージ説明

NSLayoutConstraintを使用する前は
下記のコードでしたが、幅がSafeAreaより広くなってしまっていました。

Swift

1webviewC = WKWebView(frame:ViewB.bounds) 2ViewB.addSubview( webviewC )

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

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

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

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

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

fuzzball

2017/11/15 23:53

このコードだとどうなるんでしょうか?
u-ta

2017/11/16 03:06

「発生している問題」を追記しました。
u-ta

2017/11/16 03:28

@fuzzball 解決しました。 translatesAutoresizingMaskIntoConstraintsの対象が間違っていました。
guest

回答1

0

自己解決

Swift

1translatesAutoresizingMaskIntoConstraints = false

の指定先がaddConstraintsするViewを勘違いしてました。
NSLayoutConstraintのtoItemに対してかけており
itemに対してfalseを設定していませんでした。

投稿2017/11/16 03:30

u-ta

総合スコア60

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問