2016-02-24 11 views
6

Szukam najlepszego sposobu utworzenia strzałki w dół (karetki?) Po prawej stronie UILabel w widoku, który jest wyśrodkowany w UINavigationItem.Jak zaimplementować strzałkę w dół/karetkę (jak w aplikacji Muzyka iOS 9) w projekcie iOS Swift?

enter image description here

enter image description here

Całość powinna wyglądać arow dół w muzyce aplikacji iOS 9. Tekst etykiety ulegnie zmianie podczas wykonywania i tytuł/tekst etykiety w tym strzałki powinny być skupione jak w tym zrzucie:

Screenshot of Music app on IOS 9.2

Obecnie dołączyć \u{25BE} charakter na końcu tekstu jak to:

self.lblSelectedAlbum.text = self.lblSelectedAlbum.text! + " \u{25BE}" 

Ale to ma szereg negatywnych skutków:

  1. to wygląda cluncky
  2. Jeśli tekst etykiety jest zbyt długi, strzałka w dół zniknie

Jakieś pomysły, jak najlepiej to wdrożyć? Dzięki!

Odpowiedz

3

Proponuję użyć zewnętrznej czcionki w przypisanym tekście. Jeden przykład: Font Awesome - kąt w dół i spadek w dół.

enter image description here

Po przełączeniu do widoku tekstu, można ustawić wypustki jak

myTextView.edgeInsets:UIEdgeInsetsMake(0, 10, 0, 0)]; //Replace 10 with the actual width that will center it. 

Można również podklasy UILabel zmodyfikować sposób czerpie jak w this przykład.

+0

OK, więc zainstalowałem FontAwesome i udało mi się dodać drugą etykietę ze znakiem kąta w dół po prawej stronie "Lbl Selected Blog". Ustawiam wiązania tak, aby prawe strony obu etykiet były wyrównane ze strzałką o ujemnym przesunięciu. Co się dzieje teraz, strzałka pozostaje na skrajnej prawej stronie paska tytułu, gdy tekst jest wyśrodkowany. Chciałbym jednak, aby strzałka znajdowała się po prawej stronie tekstu tytułu. Nie mogę tego naprawić wartościami bezwzględnymi, ponieważ tekst tytułu zmienia się dynamicznie. Jakieś pomysły? Dzięki! – Georg

+0

Hmm .. Czy wypróbowałeś moją sugestię użycia jednej etykiety? Możesz ustawić go na przypisany tekst i mieć dwie czcionki w tej samej etykiecie. –

+1

Dzięki, to się udało. Chciałbym dodać ten pomocny artykuł o tworzeniu NSAttributedStrings w Swift jako referencji: http://stackoverflow.com/questions/24666515/how-do-i-make-an-attributed-string-using-swift – Georg

0

Jeszcze jeden sposób na przycisk użytkownika i ustaw tekst, który chcesz ustawić, oraz tekst, który ustawisz przycisk obrazka, strzałka w dół. jeśli trzeba ustawić pozycję obrazu przycisku i przycisku przycisku, użyj opcji EdgesInset obrazu i tytułu. Mam nadzieję, że ci to pomoże. Dzięki

2

Oto Unicode: \ u {2304}

W kontekście wygląda to tak. Unikaj problemów z pobieraniem nowej czcionki.

let workout = NSMutableAttributedString(string: "Workout", attributes: [NSFontAttributeName: UIFont(name: "Verdana", size: 14)!]) 
    let arrow = NSMutableAttributedString(string: "\u{2304}", attributes: [NSFontAttributeName: UIFont(name: "Verdana", size: 37)!]) 

    let combination = NSMutableAttributedString() 
    combination.append(workout) 
    combination.append(arrow) 

    sender.setAttributedTitle(combination, for: .normal)