Ich möchte einen Text mit vielen Zeilen anzeigen. Ich habe ein Multiline-Label zu einer Scroll-Ansicht hinzugefügt, aber es zeigte nichts. Es sieht so aus, als ob dies nicht die richtige Methode für die Verwendung der Bildlaufansicht ist. Wie verwende ich die Bildlaufansicht, damit Benutzer nach unten ziehen können, um mehr Text zu sehen?Wie scrollen Sie auf dem iPhone?
Antwort
Sie können einfach ein UITextView verwenden. Es ist ein Kind von UIScrollView, und wenn Sie seine text -Eigenschaft auf eine Textmenge setzen, die nicht in den Rahmen passt, wird die Ansicht scrollbar.
Apples UIScollView documentation ist ziemlich gut, Sie sollten dort anfangen und die Klasse verstehen.
Betrachten Sie einen Scrollview als eine große Ansichtsfläche, über die der Bildschirm * gleitet. Sie können dem Scrollview Subviews hinzufügen und das Scrollen ist dann so, als ob Sie den Bildschirm über dem Scrollview positionieren würden - der Bildschirm verhält sich wie ein Fenster, durch das Sie einen Teil des Inhalts der Scroll-Ansicht sehen können.
Um dies zu tun, hat ein Scrollview ein paar zusätzliche Eigenschaften über eine normale UIView - aber es ist wie eine UIView in einem wichtigen Aspekt: es macht keinen Inhalt direkt selbst. Sie müssen eine Unteransicht hinzufügen, um Ihren Text zu zeichnen. Ein Scrollview wird genau wie eine UIView eingerichtet und angezeigt - d. H. Sie legen den Frame fest und fügen ihn einer anderen Ansicht hinzu. Um Ihren Text anzuzeigen, müssen Sie Subviews zu UIScrollView hinzufügen, die den Text tatsächlich rendern können.
Um ein grundlegendes UIScrollView zu erstellen, das Sie anfordern, sollten Sie es einfach wie eine normale Vollbildansicht erstellen - setzen Sie den Rahmen auf die gleiche Größe wie das Fenster und fügen Sie dem Fenster als Unteransicht den Bildlauf hinzu. Dann machen Sie eine große UITextView, um Ihren Text zu halten. Die UIText-Ansicht kann so groß sein, wie Sie möchten - insbesondere kann sie größer als der Bildschirm sein. Setzen Sie die contentSize-Eigenschaft von UIScrollView auf denselben Wert wie den Frame von UITextView und fügen Sie dann die UIText-Ansicht als Unteransicht von UIScrollView hinzu.
Sobald dies funktioniert, können Sie den Inhalt automatisch mit der contentOffset-Eigenschaft verschieben, den Zoom steuern und einen Delegaten einrichten, um Scroll-Ereignisse zu beobachten.
* genauer, über die der Rahmen gleitet, aber ich nehme an, Sie machen einen Vollbild UIScrollView. Ich bin sicher, dass Sie es verallgemeinern können, wenn Sie eine kleinere Ansicht wünschen.
Ich habe UIScrollView auf diese Weise für eine Anleitung in einer meiner Anwendungen verwendet. Es hat funktioniert, aber ich war mit dem Ergebnis nicht zufrieden. Ich wechselte dann zu einem UIWebView und war viel glücklicher mit dem Ergebnis. Die Größenanpassung der Bildlaufansicht erfolgt automatisch. Ich erhalte alle Formatierungsfunktionen von HTML und kann Verknüpfungen zu zusätzlichen Informationen (oder externen Websites) erstellen, die nicht mehr als das Hinzufügen einer weiteren HTML-Datei und möglicherweise eines Stellvertretercodes umfassen. Hier ist der Code, den ich verwenden (und ich hinzugefügt, um die HTML-Datei zu meiner app als Ressource):
NSString *path = [[NSBundle mainBundle] pathForResource:@"instructions" ofType:@"html"];
NSFileHandle *readHandle = [NSFileHandle fileHandleForReadingAtPath:path];
NSString *htmlString = [[NSString alloc] initWithData: [readHandle readDataToEndOfFile] encoding:NSUTF8StringEncoding];
[self.instructionsView loadHTMLString:htmlString baseURL:nil];
U auf diese Website verweisen kann http://www.edumobile.org/iphone/iphone-programming-tutorials/scrollview-example-in-iphone/
U dem Schritt für Schritt folgen, um die Scroll-Ansicht zu machen in iphone ... viel glück :)
Sie scheinen eher ein echter Benutzer von SO als ein Spammer zu sein. Es ist also ein wenig rätselhaft, warum Sie die gleiche Antwort dreimal gepostet haben. Sie sollten einige dieser Duplikate löschen, bevor Sie bestraft werden. – APC
@APC Sie sagten bestraft. Ich habe bereits gelöscht; Die einzige Strafe kommt von der Community, die ihre Antworten ablehnt. – Will
@Will - Leute signalisieren ihre Antworten auch als Spam. Also, Jennifer hat auf zwei Arten undichte Stellen geantwortet, obwohl ich glaube, dass sie jetzt nicht die magischen "sechs Flaggen" treffen wird, und die vorhandenen Spam-Flaggen werden nach zwei Tagen verblassen. – APC
Ich habe nichts hinzuzufügen, aber Ihr Name ist genial. – Patrick
@Patrick .. ja .. :) – rockey