Angenommen, ich verwende Interface Builder zum Erstellen von UI im Storyboard mit Auto Layout. Kann ich einige Einschränkungen von einer Ansicht in eine andere kopieren oder verschieben?Ist es möglich, Einschränkungen von einer Ansicht in eine andere zu kopieren?
Antwort
Wenn Sie den Schnittstellen-Builder verwenden, werden einige Einschränkungen automatisch kopiert, wenn Sie cmd-c verwenden oder bearbeiten/kopieren: diejenigen, die die Hierarchie der Kopieransichten enthalten. Sonst, nein, das kannst du nicht. Kopieren Sie die gesamte Ansicht, wenn Sie die Einschränkungen beibehalten möchten.
Vielen Dank für die Antwort, aber ich muss den Ansichtstyp im Interface Builder ändern. Deshalb frage ich, wie man Einschränkungen kopiert. Das Kopieren der Ansicht wird in meiner Situation nicht helfen. – kelin
Das ist eine andere Frage, siehe meine Antwort hier: http: // stackoverflow.com/a/28626319/1758701 – iOSdev
Ich änderte den Ansichtstyp, indem ich den Quellcode des Storyboards änderte. – kelin
Hier ist mein Hack, um alle Einschränkungen zu erhalten: Ich habe eine kleine Ansicht innerhalb meiner Hauptansicht, die ich auf einen anderen View-Controller kopieren möchte, um dies zu tun kopiere ich über die gesamte Hauptansicht in die neue Hauptansicht der Controller anzeigen. Ich ziehe dann meine kleine Ansicht (auf Seitenhierarchie) in die Hauptansicht meines neuen Controllers und lösche dann einfach die alte Hauptansicht, die ich nicht brauche. Auf diese Weise behalten Sie alle Einschränkungen für die Elemente in der kleinen Ansicht bei.
this helps :)
Sie können, wenn Sie verstehen und lernen, wie die XML der .xib
Dateien funktioniert. Ich habe mich an sie gewöhnt, und so war ich in der Lage, eine Ansicht mit ihren Einschränkungen in eine andere Ansicht zu verschieben.
Ich werde versuchen, es Schritt für Schritt zu erklären:
- für sie einen Auslass erstellen:
myView
- Rechtsklick auf die Datei
.xib
>Open As
>Source Code
oder öffnen Sie sie in einem anderen Editor (zBSublime Text
) Suchen
myView
und Sie finden so etwas wie:<outlet property="myView" destination="i5M-Pr-FkT" id="sfx-zR-JGt"/>
und kopieren Sie den Wert des
destination
Attributdie kopierte ID (
i5M-Pr-FkT
) Suchen und eines der Ergebnisse wird einview
Tag sein:<view contentMode="scaleToFill" id="i5M-Pr-FkT"> <!-- 1 --> ... </view>
Ausschneiden und Einfügen dieser ganze
view
Tag in der Ansicht der benötigtensubviews
tag:<view contentMode="scaleToFill" id="Ovp-8Y-qHZ"> <!-- 2 --> <subviews> <view contentMode="scaleToFill" id="i5M-Pr-FkT"> <!-- 1 --> ... </view> </subviews> </view>
für die kopierte ID Weiter Suche und Sie werden fin d einige Einschränkungen, die es haben mögen:
<constraint firstItem="w7M-JQ-JWD" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" id="EwH-B1-XWY"/>
Sie müssen dies in den
constraints
Tag der kleinsten gemeinsamen Vorfahren beiden superviews bewegen (die alten und die neuen):<view contentMode="scaleToFill" id="rK2-sE-P0d"> <!-- 3 --> <subviews> <view contentMode="scaleToFill" id="Ovp-8Y-qHZ"> <!-- 2 --> <subviews> <view contentMode="scaleToFill" id="i5M-Pr-FkT"> <!-- 1 --> ... </view> </subviews> </view> </subviews> <constraints> <constraint firstItem="w7M-JQ-JWD" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" id="EwH-B1-XWY"/> </constraints> </view>
Große Antwort! Ich sehe, dass Sie nach "id" suchen, und was ist, wenn ich diese Ansicht kopieren, nicht schneiden und einfügen möchte? Ich nehme an, die ID sollte eindeutig sein. Sollte es durch bestimmte Regeln erzeugt werden, oder es wäre genug, um es zufällig zu ändern? – kelin
Ja, die 'id' sollte für jede' .xib' Datei eindeutig sein, daher kann es nicht für eine 'view' und eine' constraint' gleich sein. Ich kann dir nicht garantieren, aber von dem, was ich gesehen habe, ist es völlig zufällig, aber um sicher zu sein, behalte es im selben Format: '3 Zeichen - 2 Zeichen - 3 Zeichen '. Sie können auch eine neue Ansicht hinzufügen, indem Sie sie entweder oben in der Ansichtshierarchie positionieren, so dass Sie sie einfacher finden, indem Sie die Datei vor dem Hinzufügen inszenieren, ihre ID kopieren, die Ansicht entfernen und diese verwenden "id". –
Bitte akzeptieren Sie diese Antwort stattdessen, wenn es Ihnen geholfen hat, da das aktuelle nicht das erreicht, was Sie verlangt haben. –
- 1. Ist es möglich, eine Unteransicht einer Ansicht durch Ziehen in eine andere Ansicht zu verschieben?
- 2. Ist es möglich, eine Ansicht über eine andere in Android zu platzieren?
- 3. Es ist nicht möglich, ein Element einer Liste in andere zu kopieren
- 4. Ist es möglich, Zellen in einer Datagrid-Ansicht zu verschmelzen
- 5. Ist es möglich, die WebSphere Application Server-Zellenkonfiguration von einer Umgebung in eine andere zu kopieren/exportieren?
- 6. Inhalt einer Textbox in eine andere kopieren
- 7. Andere Einschränkungen für verschiedene Größenklassen
- 8. Ist es möglich, die Daten von einer HTML-Tabelle auf eine andere PHP-Seite zu stellen?
- 9. Ist es möglich, einen Screenshot einer Ansicht zu erstellen, ohne die Ansicht anzuzeigen?
- 10. Ist es möglich, Lokalisierung auf eine andere Sprache zu erzwingen?
- 11. Ist es möglich, andere API in einer Tastypie-Ressource anzufordern?
- 12. Ist es möglich, die Daten in einer entfernten MSSQL-Tabelle in eine lokale Tabelle zu kopieren?
- 13. Gibt es eine Möglichkeit, alle Daten in einer MySQL-Datenbank in eine andere zu kopieren? (phpmyadmin)
- 14. Ist es möglich, Anfragen als cURL in Safari zu kopieren?
- 15. Ist es möglich Ref nicht in lokale Variable zu kopieren?
- 16. Ist es möglich, einen Datensatz in die Ansicht einzufügen, ohne den Trigger "statt" zu verwenden?
- 17. Ist es möglich, eine data.table von PostgreSQL zu lesen?
- 18. Ist es möglich, eine Ausdrucksspalte in einer Ansicht zu erstellen, um die Zeilennummer anzuzeigen?
- 19. So kopieren Sie eine Ansicht in eine andere Ansicht in Swift
- 20. Ist es möglich, benannte Abfragen einer Entität in eine andere Klasse zu verschieben
- 21. Ist es möglich, Daten in eine MySQL-Ansicht einzufügen?
- 22. Eine Ansicht in eine andere Ansicht laden
- 23. Wie gruppiere ich Einschränkungen in einer Ansicht
- 24. VBA - Kopieren gefilterter Datenwerte von einer Arbeitsmappe in eine andere
- 25. Was ist der beste Weg, Storyboard von einer App in eine andere zu kopieren?
- 26. Oracle Trigger kopieren Daten von einer Tabelle in eine andere
- 27. Kopieren von einer Datenbanktabelle in eine andere C#
- 28. Mysql Daten von einer Datenbank in eine andere kopieren WHERE
- 29. Zeilen von einer Tabelle in eine andere kopieren, Duplikate ignorieren
- 30. Ist es in Ordnung, widersprüchliche Einschränkungen in Xcode zu ignorieren?
Während der Laufzeit oder mit IB? Welche Art von Einschränkungen? Bitte erläutern Sie, da es zu viele Fragezeichen gibt, um Ihnen zu helfen. Was ist dein Fall genau? – kedzia
Ich habe meine Frage geklärt. – kelin
naja ... wie wäre es, wenn du es versuchst? – LinusGeffarth