Używam widoku tekstu jako kompozytora komentarzy.
W inspektorze właściwości nie mogę znaleźć nic takiego jak właściwość stylu obramowania, więc mogę użyć zaokrąglonego prostokąta, na przykład UITextField
.
A więc pytanie brzmi: jak stylizować UITextView
like a UITextField
z zaokrąglonym prostokątem?
ios
uitextview
harshalb
źródło
źródło
UITextField
i po prostu wyłączyćuserInteractionEnabled
?Odpowiedzi:
Nie ma żadnego domyślnego stylu, który musisz wybrać, polega na napisaniu fragmentu kodu przy użyciu
QuartzCore
frameworka:Działa tylko na OS 3.0 i nowszych, ale myślę, że teraz i tak jest to platforma de facto.
źródło
UITextField
zborderStyle
właściwością ustawioną naUITextBorderStyleRoundedRect
- zobacz mój post poniżej.ten kod działał dobrze dla mnie:
źródło
Wersja Swift 3
Po skonfigurowaniu widoku tekstu w kreatorze interfejsów.
Wersja Swift 2.2
źródło
Edycja: musisz importować
do stosowania promienia narożnika.
Spróbuj tego, na pewno zadziała
Tak jak Rob to wymyślił, ustawiając, jeśli chcesz, aby kolor obramowania był podobny
UITextField
, musisz zmienić szerokość obramowania na 2.0, a kolor na szary, dodając następującą linięźródło
Chciałem prawdziwej oferty, więc dodaję
UIImageView
jako podrzędny podgląd plikuUITextView
. To dopasowuje natywną ramkę na aUITextField
, w tym gradient od góry do dołu:Oto obrazy, których używam:
źródło
Jednym z rozwiązań jest dodanie UITextField poniżej UITextView , ustawienie
UITextView
przezroczystości tła i wyłączenie wszelkich interakcji użytkownika wUITextField
. Następnie w kodzie zmieńUITextField
ramkę na coś takiegoBędziesz mieć dokładnie taki sam wygląd jak pole tekstowe.
Zgodnie z sugestią Jona , powinieneś umieścić ten fragment kodu w
[UIViewController viewDidLayoutSubviews]
systemie iOS 5.0+.źródło
viewDidLayoutSubviews:
(iOS 5.0+).Aby uzyskać najlepszy efekt, należy użyć niestandardowego (rozciągliwego) obrazu tła. W ten sposób
UITextField
rysowana jest również zaokrąglona granica.źródło
Jednym ze sposobów, w jaki udało mi się to zrobić bez programowania, jest uczynienie tła pola tekstowym przezroczystym, a następnie umieszczenie za nim okrągłego przycisku prostego. Pamiętaj, aby zmienić ustawienia przycisku, aby go wyłączyć, i usuń zaznaczenie
Disable adjusts image
pola wyboru.źródło
Możesz sprawdzić moją bibliotekę o nazwie DCKit .
Byłbyś w stanie zrobić zaokrąglony narożnik widoku tekstu (a także pole tekstowe / przycisk / zwykły
UIView
)Interface Builder
bezpośrednio z:Posiada również wiele innych przydatnych funkcji, takich jak pola tekstowe z walidacją, kontrolki z ramkami, przerywane obramowania, widoki kół i linii tekstu itp.
źródło
Wiem, że jest już wiele odpowiedzi na to pytanie, ale żadna z nich nie była wystarczająca (przynajmniej w Swift). Zależało mi na rozwiązaniu, które zapewnia taką samą dokładną ramkę jak UITextField (nie przybliżone, które wygląda trochę tak, jak wygląda teraz, ale takie, które wygląda dokładnie tak, jak to i zawsze będzie dokładnie tak wyglądać). Musiałem użyć UITextField, aby utworzyć kopię zapasową UITextView dla tła, ale nie chciałem za każdym razem tworzyć tego osobno.
Poniższe rozwiązanie to UITextView, który dostarcza własne UITextField dla obramowania. To jest okrojona wersja mojego pełnego rozwiązania (która dodaje obsługę „symbolu zastępczego” do UITextView w podobny sposób) i została opublikowana tutaj: https://stackoverflow.com/a/36561236/1227119
źródło
Wypróbowałem kod Quartzcore i stwierdziłem, że powoduje on opóźnienia w moim starym 3G (używam do testów). Nie jest to duży problem, ale jeśli chcesz być maksymalnie włączony dla różnych systemów iOS i sprzętu, polecam odpowiedź Andrew_L powyżej - lub stwórz własne obrazy i zastosuj odpowiednio.
źródło
Istnieje świetny obraz tła, który jest identyczny z
UITextView
używanym do wysyłania wiadomości tekstowych w aplikacji Wiadomości iPhone'a. Będziesz potrzebować programu Adobe Illustrator, aby go pobrać i zmodyfikować. elementy wektorowe iphone uiźródło
źródło
Możesz utworzyć pole tekstowe, które nie akceptuje żadnych wydarzeń w górnej części widoku tekstowego, w następujący sposób:
źródło
Jeśli chcesz zachować czysty kod kontrolera, możesz podklasę UITextView, jak poniżej, i zmienić nazwę klasy w Interface Builder.
RoundTextView.h
RoundTextView.m
źródło
Oto moje rozwiązanie:
źródło
Nie sądzę, żeby to było możliwe. ale możesz to zrobić
UITableView
(pogrupowane) z 1 sekcją i 1 pustą komórką i użyć go jako pojemnika dla twojegoUITextView
.źródło
To jest stare pytanie, na które również szukałem odpowiedzi. Odpowiedź Luvieeres jest w 100% poprawna, a później Rob dodał kod. To świetnie, ale w odpowiedzi na inne pytanie znalazłem osobę trzecią, która wydaje mi się bardzo pomocna. Ja nie tylko szukał podobnym wyglądzie
UITextField
nadUITextView
, ja też szukał wielowierszowego wsparcia. ChatInputSample spełnia oba te wymagania. Dlatego uważam, że ta strona trzecia może być pomocna dla innych. Również dzięki Timurowi wspomniał tutaj o tym open source .źródło
W iOS7 następujące elementy idealnie pasują do obramowania UITextField (przynajmniej dla mnie):
Nie ma potrzeby importowania niczego specjalnego.
Podziękowania dla @uvieere i @hanumanDev, których odpowiedzi prawie mnie docierają :)
źródło
Może po prostu:
źródło
UITextField
zuserInteractionEnabled
zestawem doNO
.