Standardmäßig hat eine Ansicht keinerlei Größe. Sie müssen eine Art von Einschränkungen oder den Rahmen der Ansicht festlegen.
1. Constraints: Wenn Einschränkungen in viewDidLoad()
Einstellung wird die Ansicht nicht sofort eine Größe gewinnen. Um die Größe zu lesen, müssen Sie sie in einer anderen Funktion namens viewDidLayoutSubviews()
lesen. Diese Funktion wird aufgerufen, nachdem alle Ansichten angelegt wurden. Hier ist ein Beispiel, wo die Ansicht, die die Größe der übergeordneten Ansicht gewinnen:
var newView:UIView?
override func viewDidLoad() {
super.viewDidLoad()
newView = UIView()
newView!.translatesAutoresizingMaskIntoConstraints = false
self.view.addSubview(newView!)
newView!.leftAnchor.constraint(equalTo: self.view.leftAnchor).isActive = true
newView!.rightAnchor.constraint(equalTo: self.view.rightAnchor).isActive = true
newView!.topAnchor.constraint(equalTo: self.view.topAnchor).isActive = true
newView!.bottomAnchor.constraint(equalTo: self.view.bottomAnchor).isActive = true
}
override func viewDidLayoutSubviews() {
print(newView!.frame)
}
2. Rahmen: Durch die Einstellung der Ansichten Rahmen direkt, können Sie lesen, sofort seine Größe. Hier ist ein Beispiel, bei dem die Rahmen der Sicht auf die gleichen Grenzen wie die übergeordneten Ansicht festgelegt ist:
var newView:UIView?
override func viewDidLoad() {
super.viewDidLoad()
newView = UIView()
newView?.frame = view.bounds
newView!.translatesAutoresizingMaskIntoConstraints = false
self.view.addSubview(newView!)
print(newView!.frame)
}
Haben Sie Ansichten mit self.view.addSubView (yourView) hinzugefügt –
@MatGrlt seit der Klasse ein UIView Ich habe nur addSubview (view) geschrieben – Rialcom
Wo instanziieren Sie Rahmen deiner Subview? –