-1

ich die folgende Implementierung eines UIView habe ..NSLayoutConstraint mit VFL funktioniert nur horizontal, wenn '|'

struct LoginView { 
let loginView: UIView = UIView() 

func layoutLoginView() -> UIView { 

    loginView.translatesAutoresizingMaskIntoConstraints = false 
     loginView.backgroundColor = UIColor.purple 

    return loginView 
    } 
} 

Dann SubView ich die oben in dem Viewcontroller wie unten ..

class LoginVC: UIViewController { 

private let instanceOfLoginView = LoginView() 

override func loadView() { 
    super.loadView() 

    view.addSubview(instanceOfLoginView.layoutLoginView()) 

NSLayoutConstraint.activate(NSLayoutConstraint.constraints(withVisualFormat: "H:|-[loginView]-|", options: [], metrics: [:], views: ["loginView":instanceOfLoginView.layoutLoginView()])) 

NSLayoutConstraint.activate(NSLayoutConstraint.constraints(withVisualFormat: "V:|-[loginView]-|", options: [], metrics: [:], views: ["loginView":instanceOfLoginView.layoutLoginView()])) 

} 

Das Problem ist, dass nur die 'H' Seite des NSLayout funktioniert - überprüfen Sie den Screenshot unten -. Die 'V' funktioniert nicht.

Wenn ich jedoch die folgenden "V:|-8-[loginView]-8-|" anwende, funktioniert es !!!

Können Sie uns beraten, warum funktioniert die "V:|-[loginView]-|" einfach nicht, bitte ..?

Schätzen Sie Ihre Hilfe!

enter image description here

Antwort

1

Wenn VFL verwenden, das Zeichen bedeutet -"den Standardabstand verwenden".

In Ihrem Fall:

"H:|-[loginView]-|" 
    "V:|-[loginView]-|" 

Sie sagen "verwenden, um die Layout-Ränder" die per default:

UIEdgeInsets(top: 0.0, left: 16.0, bottom: 0.0, right: 16.0) 

Vor iOS 11 die .layoutMargins der Wurzel View, der von einem View-Controller verwaltet wird, kann nicht geändert werden. Um Ihre violette Ansicht zu erhalten, um die volle Ansicht zu bedecken, ändern Sie Ihren VFL zu:

+0

Ich schätze Ihre Bemühung. Wirklich hilfreich. Danke, dass du einen Neuling wie mich geführt hast. Schnelle Frage, wenn man vor iOS 11 sagt, bedeutet das, dass sich das ändert, wenn 11 herauskommt ..? –

+1

Ja - siehe Apples Dokumentation, oder: https://useyourloaf.com/blog/changing-root-view-layout-margins/ – DonMag

Verwandte Themen