前提
発生している問題
ContainerViewControllerクラス内を
swift
1 override func viewDidLoad() { 2 super.viewDidLoad() 3 let dictionaryVC = UIReferenceLibraryViewController(term: "swift") 4 self.view.addSubview(dictionaryVC.view) 5 }
のようにするとContainer Viewの範囲内だけで辞書が表示されるが
swift
1@IBAction func showdictbutton(_ sender: Any) { 2 let dictionaryVC = UIReferenceLibraryViewController(term: "swift") 3 self.view.addSubview(dictionaryVC.view) 4 } 5 override func viewDidLoad() { 6 super.viewDidLoad() 7 }
のようにしてボタンを押すと辞書が全画面で表示される
何がしたいのか
ボタンを押したときもContainer Viewの範囲内だけで収まるように辞書を表示したい
(self.view.clipsToBounds = trueを使うと範囲内だけで描画はされましたが下部が切られてスクロールしても最後まで見られないようになりました)
補足画像
みたところAutolayoutの制約が追加されていないような感じがしますので、
レイアウトが更新されて違う挙動になっているのではないでしょうか?
Autolayoutの制約を追加すれば、もしかしたら同じ挙動になるかもしれません。
Add missing constraintsで四方の制約をつけてみましたがダメでした…
確かにダメですね...
試しにaddSubView()する前にframeを指定して追加すれば期待通りに表示できましたが、
あんまりピンとくる解決策にはなっていない感じがしています...
let dictionaryVC = UIReferenceLibraryViewController(term: "swift")
dictionaryVC.view.frame = CGRect(x: 0, y: 0, width: self.view.frame.width, height: self.view.frame.height)
self.view.addSubview(dictionaryVC.view)