私はこのようなViewControllerを持っています。親のScrollViewにはUIView(wrapperView)があり、このラッパービューにはTextViewとImageViewがあります。 この単純な構造は、すべての制約が必要なインタフェースビルダーから作成され、正常に動作します。私はプログラム的権利ImageViewの(そこに緑色の矢印点)の下で私のwrapperViewの内側にもう一つのUIViewを追加する必要がありますいくつかのケースではプログラムによるサブビューとしてのUiViewの配置
。
だから私は、私は今、私はの上に画面上MYVIEWを参照してください
let myView = MyView.instanceFromNib()
myView = CGRect(x: 0, y: 0, width: 300, height: 80)
wrapperView.addSubview(myView)
を追加し、それ
class MyView : UIView {
class func instanceFromNib() -> UIView {
return UINib(nibName: "MyView", bundle: nil).instantiate(withOwner: nil, options: nil)[0] as! UIView
}
}
そして、私のViewControllerのIコードのXIBの私の新しいUIViewのためのファイルと別のクラスを作成しましたラッパービューのような制約を適用しようとすると
NSLayoutConstraint(item: myView, attribute: .top, relatedBy: .equal, toItem: myImageView, attribute: .bottom, multiplier: 1.0, constant: 8).isActive = true
同時に制約
を満たすことができない私が間違って何をしているのですか?
'myView'の' translatesAutoresizingMaskIntoConstraints'を 'false'に設定しましたか? – Akki
新しいビューを追加した後、 'UIScrollView'コンテンツサイズを更新する必要があります。 'layoutIfNeeded()'を呼び出してみてください。 – AaoIi