Xcode 8 UIButtons mit Einschränkungen oder gar nicht erscheinen
Alles funktioniert Super bis ich gestern aktualisiert Xcode auf die version 8.
Wenn ich gar keine Einschränkungen, ich sehe die buttons aber wenn ich-Einschränkung(en) der schaltächen Sie verschwinden, egal was oder wie viele Einschränkungen (Höhe, der vertikale Abstand, trailing usw...) ich gelten.
Wenn ich auf Schaltflächen Tippen, werden Sie sich normal Verhalten (events werden immer gesendet, also ich nehme an, Sie sind tatsächlich befindet sich dort(?)). Ich habe versucht, ändern der Textfarbe, Hintergrundfarbe (auch das hinzufügen eines neuen UIButton), aber am Ende ohne Glück. Ich kann nicht sehen, die Tasten. Wenn ich den hintergrund ändern, die Farbe der Centered View
ich kann diese änderung auf die app. Der seltsamste Teil ist, wenn ich auf Debug View Hierarchy
auf Xcode zu sehen, was Los ist, sieht alles gut aus dort, ich sehe alle buttons, die sich, wie ich erwarten.
Testen Sie die app sowohl auf dem iPhone 5 (iOS 9.3.5) und iPhone 6 (iOS 10).
Ich bin mit Swift 2.3, iOS 10 und Xcode 8.
Ist das ein Fehler auf Xcode 8? Wie dieses Problem zu beheben?
UPDATE:
Ich habe erkannt, dieselbe Einschränkung problem tritt auf UILabel und UIImageView zu. Sie gut Aussehen, ohne Einschränkung, aber wenn ich jede Einschränkung verschwinden Sie.
- Ich hatte das gleiche Problem, in meinem Fall war es die "Schicht.CornerRadius", die aus der problem.(Ich habe Sie auf die Schaltfläche frame bevor zu wissen, die frame-Größe.)In Xcode 7 war es ok.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Lösten dieses Problem, indem zwingt das layout, bevor Sie alle layout-Eigenschaften wie clipToBounds etc... Der schwierige Teil ist, wo und Wann
layoutIfNeeded
.In meinem Fall, ich habe ein UIButton mit horizontalem,oben,Höhe und Einschränkungen. Offenbar auf Xcode 8, my button-Titel ging plötzlich fehlt. Dann, seltsam genug, der Titel erschien nachdem ich entfernt die Höhe Zwang. Dieses Verhalten deutet auf ein Problem wahrscheinlich innerhalb der view das layout-Zyklus. Ich brauchte, um die Höhe constraint-so entfernen, es war nicht wirklich die Lösung. Also versuchte ich zu rufen
layoutIfNeeded
vor der Festlegung der Beschränkungen, aber keine Wirkung.Generiere ich diese Taste auf viewDidLoad auf eine Steuerung über ein NSObject-Klasse, die es anfaßt. Die Lösung war für mich zu zwingen
layoutIfNeeded
vor dem Aufruf der Methode, dass die setUps die Taste.Themen: clipsToBounds Ursachen UIImage auf keine Anzeige in iOS10 & XCode 8
Edit:
Referenz: Seit Xcode 8 und iOS10, Ansichten werden nicht richtiger Größe auf viewDidLayoutSubviews
Von Apple release notes:
Referenz: iOS10 release notes
-(void)awakeFromNib;
für Zellen? Edit: ich Hinzugefügt[self.contentView layoutIfNeeded];
an die Methode von einem meiner betroffenen tableViewCells, und es löste das problem. Wahrscheinlich die beste, die ich eine Unterklasse der Zelle zu verhindern, dass dies erneut passiert; zumindest bis Apple veröffentlicht ein update zu XCode8 um dieses Problem zu lösen.self.view.layoutIfNeeded()
im swiftIch habe gerade die Lösung gefunden. Wahrscheinlich ist dies ein Xcode-8 Fehler. Ich habe auch gegenüber diesem Problem.
Die Lösung ist das ändern der Xcode-version im interface builder..
Schritte,
Wählen Sie Ihre .xib-Datei.
Öffnen Sie den Utilities-Bereich.
Wählen Sie "Datei-Inspektor"
Unter dem "Interface Builder "Dokumente" ändern Sie die Xcode version von "Geöffnet" zu "Xcode 7.x"
Ich denke, das wird Ihnen helfen.
layoutIfNeeded()
zur Ansicht.Mir fehlte die Nummer der Einstellung UIButton-Klasse, um meine eigene Klasse. Ich habe meine eigene Klasse und haben gesehen, dass ich einen Eckenradius auf
awakeFromNib()
Methode. Ich rieflayoutIfNeeded()
bevor ich Eckenradius, das war die Lösung in meinem Fall.Ich weiß nicht, ob es ein bug ist, aber ich habe es gelöst hinzufügen
self.layoutIfNeeded()
aufawakeFromNib()
Methode. Nur für den Fall, ich bin UnterklassenUIButton
...ABER, wenn Sie nicht, können Sie nicht lösen, das gleiche problem hinzufügen, dass die Codezeile (zumindest können Sie nicht auf diese Xcode-version). Mit
viewDidLayoutSubviews()
nicht zu arbeiten...Bestätigt dies ein Problem mit XCode 8 derzeit (Oktober 19) verteilt über den App Store. Es unnötig entfernt einige
<rect/>
element aus dem Storyboard/xib-Dateien.Keiner der
layoutIfNeeded
Problemumgehungen für mich funktioniert. Ich landete download XCode 8 Beta 3, die das Problem behoben.Einschränkungen für scrollview sollte:
top,bottom,leading,trailing
Einschränkung für contentview in scrollview sollte:
top,bottom,leading,trailing,fixed height and center x(horizontally in container)
Scheint es, dass Xcode 8.1 Beta 2 (8T46g) behebt das 1000x1000 Inhalt-Größe-problem (und natürlich das auto-layout-Probleme innerhalb der Tabelle/Auflistung anzeigen-Zellen).
So, wie es funktioniert in Xcode 7.x funktioniert es ohne Probleme in Xcode 8.1 Beta 2.