ビューを再利用したいので別のカスタムUIView Bに埋め込まれたカスタムUIViewを作成しました。次のようにXcodeカスタムUIViewが正しく表示されない
(SO省略2枚の以上の画像を投稿することはできません)
Iを使用SWIFTコードは:
override init(frame: CGRect)
{
super.init(frame: frame)
setupView()
}
required init?(coder aDecoder: NSCoder)
{
super.init(coder: aDecoder)
setupView()
}
private func setupView()
{
let view = viewFromNibForClass()
view.autoresizingMask = [
.flexibleWidth,
.flexibleHeight
]
view.frame = bounds
addSubview(view)
}
private func viewFromNibForClass() -> UIView
{
let bundle = Bundle(for: type(of: self))
let nib = UINib(nibName: String(describing: type(of: self)), bundle: bundle)
let view = nib.instantiate(withOwner: self, options: nil).first as! UIView
return view
}
のUIView B、に(スタック内の)いくつかのUIView Aを確定しますビューは無作為にをスーパービューの左上に、時にはビューフレームの外にジャンプします。私は一時的にこれにリサイズマスクを変更する必要があります:
view.autoresizingMask = [
.flexibleWidth,
.flexibleHeight,
.flexibleTopMargin,
.flexibleBottomMargin,
.flexibleLeftMargin,
.flexibleRightMargin
]
調整後に変更してください。しかし、私はでも、高さや距離などの単純な制約をsuperview.leadingに適用することはできません。複数の競合が発生することなくです。
Custom UIView B containing several UIView A
は、すべての競合を解決するために、私はすべての制約を削除して続行する必要があります。次に、メインのストーリーボードのビューコントローラにUIView Bを配置すると、ビューが奇妙な位置にジャンプします。私はこれが最初のクエリで概説されたUIViewの異常な動作に起因すると信じています。任意のヘルプまたはポインタのためGeneric view controller containing UIView B
ありがとう!