Ich verwende eine Textansicht als Kommentarkomponist.
Im Eigenschafteninspektor kann ich so etwas wie eine Eigenschaft im Rahmenstil nicht finden, sodass ich ein abgerundetes Rechteck verwenden kann, so etwas wie UITextField
.
Die Frage ist also: Wie kann ich ein UITextView
Like a UITextField
mit einem abgerundeten Rect stylen?
ios
uitextview
harshalb
quelle
quelle
UITextField
und einfach ausschaltenuserInteractionEnabled
?Antworten:
Es gibt keinen impliziten Stil, den Sie auswählen müssen. Es geht darum, ein bisschen Code mit dem
QuartzCore
Framework zu schreiben :Es funktioniert nur unter OS 3.0 und höher, aber ich denke, jetzt ist es sowieso die De-facto-Plattform.
quelle
UITextField
mit derborderStyle
Eigenschaft verwenden, die auf eingestellt istUITextBorderStyleRoundedRect
- siehe meinen Beitrag unten.Dieser Code hat bei mir gut funktioniert:
quelle
Swift 3 Version
Nach dem Einrichten der Textansicht im Interface Builder.
Swift 2.2 Version
quelle
Bearbeiten: Sie müssen importieren
zur Verwendung des Eckenradius.
Versuchen Sie dies, es wird sicher funktionieren
Wie Rob herausgefunden hat,
UITextField
müssen Sie die Rahmenbreite auf 2,0 und die Farbe auf Grau ändern, indem Sie die folgende Zeile hinzufügen, wenn Sie möchten, dass die Rahmenfarbe ähnlich istquelle
Ich wollte das echte Geschäft, also füge ich
UIImageView
als Unteransicht derUITextView
. Dies entspricht dem nativen Rand auf aUITextField
, einschließlich des Verlaufs von oben nach unten:Dies sind die Bilder, die ich benutze:
quelle
Eine Lösung besteht darin , ein UITextField unterhalb der UITextView hinzuzufügen , den
UITextView
Hintergrund transparent zu machen und jegliche Benutzerinteraktion auf dem zu deaktivierenUITextField
. Ändern Sie dann im Code denUITextField
Rahmen mit so etwasSie sehen genauso aus wie ein Textfeld.
Und wie von Jon vorgeschlagen , sollten Sie diesen Code
[UIViewController viewDidLayoutSubviews]
unter iOS 5.0+ einfügen.quelle
viewDidLayoutSubviews:
Geben Sie Code ein (iOS 5.0+).Für den besten Effekt müssen Sie ein benutzerdefiniertes (dehnbares) Hintergrundbild verwenden. Auf diese Weise wird auch der
UITextField
abgerundete Rand des Zeichens gezeichnet.quelle
Eine Möglichkeit, dies ohne Programmierung zu tun, besteht darin, den Hintergrund des Textfelds transparent zu machen und dann einen runden Rechteck-Button dahinter zu platzieren. Stellen Sie sicher, dass Sie die Schaltflächeneinstellungen ändern, um sie zu deaktivieren, und deaktivieren Sie das
Disable adjusts image
Kontrollkästchen.quelle
Vielleicht möchten Sie meine Bibliothek namens DCKit überprüfen .
Sie können eine Textansicht mit abgerundeten Ecken (sowie ein Textfeld / eine Schaltfläche / eine Ebene
UIView
)Interface Builder
direkt erstellen :Es hat auch viele andere nützliche Funktionen, wie Textfelder mit Validierung, Steuerelemente mit Rahmen, gestrichelte Rahmen, Kreis- und Haaransichten usw.
quelle
Ich weiß, dass es bereits viele Antworten auf diese Frage gibt, aber ich fand keine wirklich ausreichend (zumindest in Swift). Ich wollte eine Lösung, die genau den gleichen Rand wie ein UITextField bietet (keine ungefähre Lösung, die so aussieht, wie sie jetzt aussieht, sondern eine, die genau so aussieht und immer genau so aussieht). Ich musste ein UITextField verwenden, um die UITextView für den Hintergrund zu sichern, wollte dies aber nicht jedes Mal separat erstellen müssen.
Die folgende Lösung ist eine UITextView, die ein eigenes UITextField für den Rahmen bereitstellt. Dies ist eine abgespeckte Version meiner Volllösung (die der UITextView auf ähnliche Weise "Platzhalter" -Unterstützung hinzufügt) und wurde hier veröffentlicht: https://stackoverflow.com/a/36561236/1227119
quelle
Versuchte den Quartzcore-Code und stellte fest, dass er bei meinem alten 3G (das ich zum Testen verwende) zu Verzögerungen führte. Kein großes Problem, aber wenn Sie für verschiedene iOS und Hardware so umfassend wie möglich sein möchten, empfehle ich die Antwort von Andrew_L oben - oder erstellen Sie Ihre eigenen Bilder und bewerben Sie sich entsprechend.
quelle
Es gibt ein großartiges Hintergrundbild, das mit dem
UITextView
zum Senden von Textnachrichten in der iPhone-Nachrichten-App verwendeten identisch ist . Sie benötigen Adobe Illustrator, um es zu erhalten und zu ändern. iPhone UI Vektor Elementequelle
quelle
Sie können ein Textfeld erstellen, das keine Ereignisse über einer Textansicht wie folgt akzeptiert:
quelle
Wenn Sie Ihren Controller-Code sauber halten möchten, können Sie UITextView wie unten beschrieben unterordnen und den Klassennamen im Interface Builder ändern.
RoundTextView.h
RoundTextView.m
quelle
Hier ist meine Lösung:
quelle
Ich denke nicht, dass es möglich ist. Sie können jedoch
UITableView
(gruppiert) mit 1 Abschnitt und 1 leeren Zelle arbeiten und diese als Container für Ihre verwendenUITextView
.quelle
Dies ist eine alte Frage, und ich wurde auch nach dieser Antwort gesucht. Die Antwort von luvieeres ist 100% richtig und später fügte Rob Code hinzu. Das ist ausgezeichnet, aber ich habe in einer anderen Frage einen Dritten gefunden , der mir sehr hilfreich erscheint. Ich wurde nicht nur nach einem ähnlichen Aussehen von
UITextField
Over gesucht, sondernUITextView
auch nach mehrzeiliger Unterstützung. ChatInputSample hat beide erfüllt. Deshalb denke ich, dass dieser Dritte für andere hilfreich sein könnte. Auch dank Timur erwähnte er diese Open Source hier .quelle
In iOS7 stimmt Folgendes perfekt mit dem UITextField-Rand überein (zumindest für mich):
Es ist nicht erforderlich, etwas Besonderes zu importieren.
Danke an @uvieere und @hanumanDev, deren Antworten mich fast dorthin bringen :)
quelle
Wie wäre es einfach:
quelle
UITextField
withuserInteractionEnabled
set to verwenden könntenNO
.