Ich habe eine schreckliche Zeit damit, ein Eingabefeld wie das in der SMS-App zu bekommen.
Kann irgendjemand eine Anleitung geben, wie man eine davon baut und gut aussieht? Ich brauche ein Eingabefeld, das schön wie das UITextfield geformt ist, aber beim Tippen vertikal streckt.
Ich nehme an, dass ich die Breite des Textes berechnen und den Overlay-Bildrahmen vertikal strecken muss, wenn das Textwort umbrochen wird. Der nächste, den ich gekommen bin, streckt sich, aber der Cursor springt herum, wenn er sich den Grenzen nähert.
UPDATE:
Ich habe eine Woche lang jeden Tag daran gearbeitet und ich habe auf dem UITextView aufgegeben. Ich kann es richtig strecken, aber beim Zurücksetzen schrumpft die Höhe der Textansicht zu hoch, wenn man eine Zeile hochgeht. Während ich weiter rückwärts gehe, korrigiert es sich. Zum Beispiel zeigt es dieses Verhalten an, wenn ich in Zeile 4 bin und bis zu Zeile 3 zurückspringe. Wenn ich dann mit dem Zurücksetzen fortfahre, korrigiert es bis zum Ende von Zeile 2. Dann korrigiert es sich selbst, .... usw.
Ich habe mich entschieden, UITextField abzuleiten, aber ich kann es nicht einmal in der von mir angegebenen Bildgröße anzeigen lassen. 150,150,150,150.
Three20 Projekt hat ein Steuerelement, das dies für Sie tun sollte.
Aus der README von Three20:
TTTextEditor ist ein UITextView, der es kann Wie Sie automatisch wachsen Art. Ich benutze dies für die Eingabe von Nachrichten in Facebook Chat, und es verhält sich ähnlich dem Editor in Apples SMS App.
Probieren Sie Chat-Eingabebeispiel aus. Es hat das gleiche Aussehen und die gleiche Funktionalität wie die SMS App.
Sie können das selbst machen. Zum Glück, die UITextField
kann Sie benachrichtigen, wenn sich der Text ändert , und glücklicherweise hat NSString
Methoden (unter den UIKit-Zusätzen), mit denen Sie die Höhe der Zeichenfolge bei einer bestimmten Breite und glücklicherweise < a href="http://developer.apple.com/iphone/library/documentation/UIKit/Reference/UIView_Class/UIView/UIView.html#//apple_ref/doc/uid/TP40006816-CH3-SW5"> Sie können die Größe ändern a UITextField
selbst .
Ich weiß, dass das alt ist, aber für die Leute, die diese Antwort noch betrachten, gibt es jetzt ein nettes Steuerelement von Slack, das SlackTextViewController
Tags und Links objective-c iphone uitextview cocoa-touch uikit