Frage

Ich bin den Aufbau einer Dateneingabeformular in meinem iPhone app, und es gibt mehr Datenfelder als auf den Bildschirm passen. Ich dachte, ich sollte sie in eine UIScrollView setzen, so dass der Benutzer durch die Form bewegen kann. Was ist der beste Weg, dies im Interface Builder zu bauen? Ich weiß, dass ich es programmatisch tun, aber ich mag es im Interface Builder tun, wenn ich kann. Das Problem ist, Wie kann ich UILabels auslegen, UITextFields usw., wenn sie außerhalb des Haupt iPhone-Bildschirm fallen - im Bereich des Bildschirms, für die die UIScrollView nützlich wird

War es hilfreich?

Lösung

Klicken Sie doppelt auf die UIScrollView selbst in IB zu öffnen, und erhöhen Sie die Größe auf die Größe, die Sie benötigen oder größer (Sie zur Laufzeit immer schrumpfen können). Dann einfach die Elemente hinzuzufügen.

EDIT: Funktioniert nicht -. Finden Sie unter hier statt

Andere Tipps

Die beste Abhilfe, die ich für dieses Problem gefunden (die ich peinlich für Interface Builder betrachten) ist dies:

  1. Stelle ein „Container“ UIView innerhalb der UIScrollView, legen Sie die Größe des Behälters UIView zu dem, was benötigt wird (zum Beispiel 320 x 1200) mit dem Inspektor und fügen Sie Ihre Inhalte in diesem Container-Ansicht. (Ihre Schaltflächen, Textfelder usw.).
  2. stellen Sie den Content für die UIScrollView, im Code, die gleiche wie die Größe des Containers UIView zu sein. irgendwo in viewDidLoad zum Beispiel (z scrollView.contentSize = containerView.frame.size;)
  3. So ändern Inhalt jenseits der Grenzen des Scroll im Interface Builder, haben Sie Ihre Behälter Blick nach draußen ziehen von der jedes Mal Ansicht Scrollen, um die Änderungen zu machen, dann ziehen Sie den Behälter Blick zurück in die UIScrollView und zu bauen.

Das ist eigentlich ganz einfach:

  1. Erstellen Sie eine neue View-Controller-Klasse z.B. MyScrollViewController

  2. Erstellen Sie eine neue xib mit einem UIScrollView als oberste Ansicht, und stellen Sie die Klasse des Eigentümers Datei zu MyScrollView-Controller

  3. Stellen Sie die Ansicht Attribut der Datei Besitzer auf die Bildlaufansicht

  4. Ziehen Sie den Boden des Scroll die gewünschte Größe zu schaffen.

  5. Positionieren Sie verschiedene andere UI-Elemente als Unter Blick auf die Bildlaufansicht

  6. Erstellen und eine IBOutlet in MyScrollViewController.h für die Scroll-Ansicht verbinden, z.

    @property (retain, nonatomic) IBOutlet UIScrollView *scrollView;
    
  7. In MyScrollViewController der viewDidLoad Methode, fügen Sie die folgende Codezeile:

    self.scrollView.contentSize = self.scrollView.frame.size;
    

Th-th-th-das alle Leute ist!

"Content Insets" von "Scroll View Size" auf "Größe Inspektor" ein: Unten = YourFrameHeight - Screenheight. Es ermöglicht Ihnen, in den Bereichen von oben nach oben, von unten nach unten in Ihrem UIScrollView

blättern

Ich habe auch das gleiche Problem hat. Was ich am Ende tun war ein anderes UIView in der es setzen und die Einstellung der Höhe, was ich wollte. Dann habe ich alle meine UI-Elemente im Inneren. Dadurch können Sie die Innenansicht ziehen nach oben und unten.

Was für mich in xCode5 gearbeitet (ohne Storyboard, mit automatischem Layout) wird unter Verwendung der in 7 Stufen zur Antwort über das Enden mit ‚Th-Th-Th-das alle Leute sind!‘ und das Hinzufügen von zwei Schritten.

8) Ziehen Sie eine neue UIView Interface Builder. Nicht in die Scroll-Ansicht. Nur für sich allein. Setzen Sie alle Ihre Kontrollen / Blick in das und es so groß machen wie Sie wollen. Ich hakte diese Ansicht als content auf.

@property (schwach, nonatomic) IBOutlet UIView * content;

9) Dann - (void) viewDidLoad

[self.mainScrollView addSubview: self.contentView];     [Self.mainScrollView setContentSize: CGSizeMake (self.contentView.frame.size.width, self.contentView.frame.size.height)];

Nur zu sagen, das machte es für mich arbeiten.

Es gibt endlich eine vernünftige Lösung für all dies und das ist es, einen Container Ansicht innerhalb des UIScrollView zu platzieren. Als Displays Interface Builder separat die UIViewController innerhalb der Container-Ansicht können Sie endlich sehen, was Ihre UIScrollView Inhalte wie ohne Überquerung die Finger und auf dem Kopf stehend aussehen wird.

Sie müssen noch programmatisch setzen Ihre Inhalte Größe, sondern eine dest kann man jetzt visualisieren, was es geht.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top