Ich habe eine benutzerdefinierte UIView A erstellt, die in eine andere benutzerdefinierte UIView B eingebettet ist, weil ich Ansichten wiederverwenden möchte.Xcode Custom UIView wird nicht ordnungsgemäß angezeigt
(kann nicht mehr als 2 Bilder schreiben so weggelassen)
der SWIFT-Code I wird wie folgt verwendet:
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
}
Wenn mehrere UIView A Platzieren (in einem Stapel) in UIView B, die Ansichten werden nach dem Zufallsprinzip springen nach oben links von der Superansicht, manchmal aus dem Rahmen der Ansicht. Ich muss die Größenänderungsmaske vorübergehend in diese ändern:
dann ändern Sie es zurück, nachdem die Anpassungen vorgenommen wurden. Aber immer noch, ich bin nicht in der Lage, irgendwelche einfachen Einschränkungen wie Höhe oder Entfernung zu superview.leading anwenden, ohne auf mehrere Konflikte.
Custom UIView B containing several UIView A
alle Konflikte lösen, muss ich jede Einschränkung löschen und fortzufahren. Wenn Sie dann UIView B in einem View-Controller in meinem Haupt-Storyboard platzieren, wird die Ansicht wieder in eine seltsame Position springen. Ich glaube, dass dies dem abnormalen Verhalten von UIView A in der ersten Abfrage zugeschrieben wird.
Generic view controller containing UIView B
Vielen Dank für jede Hilfe oder Zeiger!