Wiele kolorów w NSString
lub NSMutableStrings
nie jest możliwe. Więc słyszałem trochę o tym, NSAttributedString
który został wprowadzony z iPadem SDK 3.2 (lub około 3.2) i jest dostępny na iPhonie od iPhone SDK 4.0 beta .
Chciałbym mieć sznurek, który ma trzy kolory.
Powodem, dla którego nie używam 3 oddzielnych ciągów NSS, jest to, że długość każdego z trzech NSAttributedString
podciągów często się zmienia, więc wolałbym nie używać żadnych obliczeń do zmiany położenia 3 oddzielnych NSString
obiektów.
Jeśli jest to możliwe przy użyciu, NSAttributedString
jak to zrobić, wykonaj następujące czynności - (jeśli nie jest to możliwe z ciągiem NSAttorted, jak to zrobić):
Edit:
Pamiętaj @"first"
, @"second"
i @"third"
zostanie zastąpiony przez inne ciągi w dowolnym momencie. Tak więc używanie zakodowanych wartości NSRange nie będzie działać.
źródło
Odpowiedzi:
Podczas budowania przypisywanych ciągów wolę używać zmiennej podklasy, aby zachować czystość.
Biorąc to pod uwagę, oto jak utworzyć trójkolorowy ciąg znaków:
wpisany w przeglądarce. implementator zastrzeżenia
Oczywiście nie będziesz programował na stałe w takich zakresach. Być może zamiast tego możesz zrobić coś takiego:
źródło
NSAttributedString
. Istnieją jednak rzeczy typu open source, takie jak OHAttributLabel .kCTForegroundColorAttributeName
zamiastNSForegroundColorAttributeName
.Odpowiedź na pytanie jest już udzielona ... ale chciałem pokazać, jak dodać cień i zmienić czcionkę za pomocą NSAttributString, aby ludzie szukający tego tematu nie musieli dalej szukać.
Oto wersja Swift ...
Ostrzeżenie! Działa to przez 4s.
Przez 5s musisz zmienić wszystkie wartości Float na Double wartości (ponieważ kompilator jeszcze nie działa poprawnie)
Szybkie wyliczanie do wyboru czcionek:
Szybka tablica dla dostępu do enum (wymagana, ponieważ enum nie może używać „-”):
Szybka przypisana funkcja tekstu:
pierwsze i ostatnie rozszerzenie używane do znajdowania zakresów w tablicy ciągów:
nowe kolory:
moja zamiana makr:
mój twórca przycisków z tekstem:
mój UIView / UILabel maker z przypisanym tekstem, cieniem i zaokrąglonymi rogami:
ogólny cień dodaj:
zobacz rozszerzenie dla stylu widoku:
rzeczywisty widok załadował funkcję:
źródło
Myślę, że jest to bardzo wygodny sposób
regular expressions
na znalezienie zakresu zastosowania atrybutów. Oto jak to zrobiłem:Szukałem listy dostępnych atrybutów i nie znalazłem ich tutaj ani na pierwszej stronie referencji do zajęć. Postanowiłem więc opublikować tutaj informacje na ten temat.
Standardowe atrybuty
Przypisane ciągi znaków obsługują następujące standardowe atrybuty tekstu. Jeśli klucza nie ma w słowniku, użyj domyślnych wartości opisanych poniżej.
Przewodnik programowania NSAttributString
Pełne odniesienie do klasy znajduje się tutaj .
źródło
To rozwiązanie będzie działać na dowolną długość
źródło
Napisałem pomocnika, aby łatwo dodawać atrybuty:
https://github.com/shmidt/MASAttributes
Możesz zainstalować za pośrednictwem CocoaPods również:
pod 'MASAttributes', '~> 1.0.0'
źródło
Od iOS 7 możesz używać
NSAttributedString
składni HTML:Musisz dodać plik „string.html” do swojego projektu, a zawartość HTML może być taka:
Teraz możesz używać,
NSAttributedString
jak chcesz, nawet bez pliku HTML, na przykład:Źródło
źródło
Zawsze uważałem, że praca z przypisanymi ciągami jest niewiarygodnie długim i żmudnym procesem.
Stworzyłem więc aplikację na Maca, która tworzy dla ciebie cały kod.
https://itunes.apple.com/us/app/attribut-string-creator/id730928349?mt=12
źródło
Łatwiejsze rozwiązanie dzięki przypisanemu przedłużeniu łańcucha.
Spróbuj tego i zobacz (Testowane w Swift 3 i 4)
Oto oczekiwany wynik:
źródło
W Swift 4:
źródło
Możesz załadować
HTML
przypisany ciąg wSwift
następujący sposóbAby załadować
html
z plikuhttp://sketchytech.blogspot.in/2013/11/creating-nsattributstring-from-html.html
I ustaw ciąg zgodnie z wymaganym atrybutem .... postępuj zgodnie z tym ..
http://makeapppie.com/2014/10/20/swift-swift-using-attorted-strings-in-swift/
źródło
Stworzyłem bibliotekę, która znacznie ułatwia to zadanie. Sprawdź ZenCopy.
Możesz tworzyć obiekty Style i / lub ustawiać je na klucze, aby odwoływały się później. Lubię to:
Następnie możesz łatwo konstruować łańcuchy i stylizować je ORAZ mieć parametry :)
Możesz także łatwo stylizować rzeczy dzięki wyszukiwaniu wyrażeń regularnych!
Spowoduje to stylizowanie wszystkich słów za pomocą „@” przed stylem „token”. (np. @jpmcglone)
Muszę nadal działać, bo wszystko
NSAttributedString
ma do zaoferowania, ale myślęfontName
,fontSize
że większość z nich pokrywa kolor. Spodziewaj się wkrótce wielu aktualizacji :)Mogę pomóc ci zacząć od tego, jeśli potrzebujesz. Również szukam informacji zwrotnych, więc jeśli to ułatwi ci życie, powiedziałbym, że misja została wykonana.
źródło
źródło
Aby rozwiązać tego rodzaju problemy, szybko stworzyłem bibliotekę o nazwie Atributika.
Można go znaleźć tutaj https://github.com/psharanda/Atributika
źródło
Szybki 4
Lista atrybutów zobacz tutaj NSAttortedStringKey w Apple Docs
źródło
Bardzo łatwy sposób to zrobić.
Aby uzyskać więcej informacji kliknij tutaj; https://github.com/iOSTechHub/AttributString
źródło