Muszę osadzić małe ikony (rodzaj niestandardowych pocisków) na moim UILabel
w iOS7. Jak mogę to zrobić w projektancie interfejsu? A przynajmniej w kodzie?
W Androidzie są leftDrawable
i rightDrawable
dla etykiet, ale jak to się robi w iOS? Próbka w systemie Android:
ios
objective-c
cocoa-touch
ios7
textkit
AVEbrahimi
źródło
źródło
Odpowiedzi:
Możesz to zrobić za pomocą załączników tekstowych iOS 7 , które są częścią TextKit. Przykładowy kod:
źródło
UIImageView
do swojej etykietyNSAttributedString *attachmentString = [NSAttributedString attributedStringWithAttachment:attachment]; NSMutableAttributedString *myString = [[NSMutableAttributedString alloc] initWithAttributedString:attachmentString]; NSAttributedString *myText = [[NSMutableAttributedString alloc] initWithString:text]; [myString appendAttributedString:myText];
Oto sposób na osadzenie ikony w UILabel.
Aby wyrównać ikonę, użyj attach.bounds
Swift 5.1
Wersja Objective-C
źródło
Swift 4.2:
źródło
Twój obraz referencyjny wygląda jak przycisk. Spróbuj (można to również zrobić w Interface Builder):
źródło
Wersja Swift 3
Rozszerzenie UILabel
źródło
Wprowadziłem tę funkcję szybko tutaj: https://github.com/anatoliyv/SMIconLabel
Kod jest tak prosty, jak to tylko możliwe:
Oto jak to wygląda:
źródło
UIlabel
Rozszerzenie Swift 4, aby dodać obraz do etykiety w odniesieniu do powyższych odpowiedziźródło
NSAttributedString(string: " " + text, attributes: [.font: self.font])
Wersja Swift 2.0:
źródło
Spróbuj przeciągnąć
UIView
na ekran w IB. Stamtąd możesz przeciągnąćUIImageView
iUILabel
do właśnie utworzonego widoku. Ustaw obrazUIImageView
w inspektorze właściwości jako niestandardowy obraz punktora (który będziesz musiał dodać do swojego projektu, przeciągając go do panelu nawigacji) i możesz wpisać tekst na etykiecie.źródło
spróbuj w ten sposób ...
źródło
Swift 5 Easy Way Po prostu kopiuj Wklej i zmień to, co chcesz
źródło
Możesz użyć UITextField z właściwością leftView, a następnie ustawić
enabled
właściwość naNO
Lub użyj UIButton i
setImage:forControlState
źródło
W Swift 2.0,
Moje rozwiązanie problemu to połączenie kilku odpowiedzi na to pytanie. Problem z odpowiedzią @ Phila polegał na tym, że nie mogłem zmienić pozycji ikony i zawsze pojawiała się ona w prawym rogu. I jedyna odpowiedź od @anatoliy_v, nie mogłem zmienić rozmiaru ikony, którą chcę dołączyć do ciągu.
Aby to zadziałało, najpierw zrobiłem,
pod 'SMIconLabel'
a następnie utworzyłem tę funkcję:To rozwiązanie nie tylko pomoże Ci umieścić obraz, ale także pozwoli na wprowadzenie niezbędnych zmian w rozmiarze ikony i innych atrybutach.
Dziękuję Ci.
źródło
Rozszerzenie Swift 3 UILabel
Wskazówka: jeśli potrzebujesz spacji między obrazem a tekstem, po prostu użyj spacji lub dwóch przed etykietą labelText.
źródło
Możesz użyć tej funkcji, aby dodać obrazy lub małe ikony do etykiety
źródło
musisz stworzyć niestandardowy obiekt, w którym użyłeś a,
UIView
a wewnątrz umieściłeś aUIImageView
i aUILabel
źródło