Da ich das gleiche leicht in Android und WPF tun könnte, dachte ich, XCode Interface Builder wäre auch einfach. Aber ich habe mich getäuscht. Ich habe Stunden auf dem Storyboard verbracht, um die Einschränkungen mehrfach zu ändern. Ich weiß, dass diese Frage dumm scheint, aber bitte geben Sie mir einen Hinweis.IB, Keep ImageView Center, aber wachsen als Bildschirmgröße, das Seitenverhältnis beibehalten
Ich möchte so etwas auf dem Storyboard. Welche Einschränkungen sollte ich setzen?
- Das Seitenverhältnis des ImageView sollte beibehalten werden.
- Der ImageView ist horizontal zentriert.
- Der ImageView wächst als die Bildschirmbreite, z. B. 90% der Bildschirmbreite auf einem vertikalen Telefon. Optional, ich wünschte, ich könnte ein Maximum, zum Beispiel nicht größer als sagen, 400. Ich meine, 90% auf einem iPad ist zu groß.
- Der obere Rand des ImageView sollte der Bildschirmgröße angemessen sein. Ich meine, ein hartcodierter Rand 20 würde es auf einem iPad zu nah an die Spitze bringen, und ein hartcodierter Rand 200 würde auf einem iPad gut aussehen, aber nicht auf einem iPhone SE.
Hier ist eine Antwort (von mir) - https://stackoverflow.com/questions/42860324/autolayout-contraints-for-a-view-from -xib/42861232 # 42861232 - mit einem zugeordneten Repo (https://github.com/justdfd/soSquare). Das ist Swift 3, aber die wichtigen Teile ... IB-Einschränkungen, Prioritäten usw. sollten funktionieren, egal was passiert. Der Trick ist * multiple * Constraints mit Prioritäten, damit die Layout-Engine weiß, was zu brechen ist. AUCH, dass ein "Quadrat" "UIView" (a) ein 'UIImageView' mit einem Seitenverhältnis sein kann und (b) einfach rechteckig sein kann. – dfd
Wenn es um iOS geht, ist es nicht gut, sich an die prozentuale Welt zu halten. Autolayout ist nicht so und es bringt die Probleme früher als später. –