2016-09-20 2 views
-1

Ich benutze ein Storyboard mit einem benutzerdefinierten XIB, vor dem Upgrade auf swift 2 und xcode 7 wird alles gut geladen. Nach dem Upgrade kann die Umwandlung des Storyboards in xcode 8. My viewcontroller zeigt die Ansicht an, aber es fehlt mein benutzerdefiniertes XIB. Wenn man sich die Storyboard-Datei anschaut, sieht es so aus, als ob es einen Fehler bei der Umwandlung eines Storyboards mit benutzerdefiniertem XIB gibt. Hat noch jemand dieses Problem?Benutzerdefiniertes XIB fehlt beim Laden mit Swift 3 Xcode 8

required public init(coder aDecoder: NSCoder) { 
    super.init(coder: aDecoder)! 
    let bundle = Bundle(for: type(of: self)) 
    let nib = UINib(nibName: self.dynamicTypeName, bundle: bundle) 
    let nibView = nib.instantiate(withOwner: self, options: nil).first as! UIView 
    self.mainView = nibView 
    self.mainView.frame = bounds 
    self.mainView.autoresizingMask = [.flexibleWidth, .flexibleHeight] 
    mainView.translatesAutoresizingMaskIntoConstraints = true 
    self.addSubview(mainView) 
} 

Antwort

0

ging etwas schief mit dem Layout-Prozess mit schnellen 3, weil vor dem Upgrade

Aufruf self.mainView.frame = Grenzen, Ihnen die richtigen Grenzen geben würde, aber jetzt mit schnellen 3 seine immer (0, 0, 1000, 1000), also musste ich den Frame in layoutSubviews setzen, um die richtigen Grenzen zu bekommen.

open override func layoutSubviews() { 
    self.mainView.frame = bounds 
} 
+0

Ich bin auch vor dem gleichen Problem, haben Sie irgendeine Lösung gefunden. –

+0

Ja, versuchen Sie, Ihren eigenen XIB-Rahmen in layoutSubviews zu setzen – RiceAndBytes

+0

Nicht sicher, warum es den Rahmen nicht automatisch nimmt, obwohl der zur Verfügung gestellte Raum noch Vollbild ist (sagen wir mainscreen.rect) –