2011-01-18 15 views
65

Czy można dodać standardową plakietkę do standardu UIButton?Jak mogę dodać plakietkę do standardowego Uibutton?

Jeśli nie jest to obsługiwane częściowo, jak najprościej to osiągnąć?

Przykład obrazu:

An iPhone UI button

+0

Dla rekordu .. Listopad 2013, najnowszy ostatnio obsługiwany pakiet wydaje się być: https://github.com/jessesquires/JSCustomBadge działa idealnie bez żadnych problemów. – Fattie

+0

Po opublikowaniu tego komentarza zdałem sobie sprawę, że JSCustomBadge wydaje się działać w Xcode5, a nie Xcode4. "CustomBadge" działa doskonale w Xcode4 https://github.com/ckteebe/CustomBadge TBC oba wydają się działać doskonale w Xcode5. Mam nadzieję, że to komuś pomaga. – Fattie

+1

Właśnie wydałem CocoaPod napisany w Swift na iOS 8, który zapewnia tę funkcjonalność po wyjęciu z pudełka. Nadal jest dość wcześnie, ale chciałbym usłyszeć pewne opinie. Sprawdź to na [https://github.com/johncosch/TIPBadgeManager](https://github.com/johncosch/TIPBadgeManager](https://github.com/johncosch/TIPBadgeManager) –

Odpowiedz

77

Tutaj to bardzo miły klasa przez Sascha Paulus o nazwie CustomBadge, która tworzy i renderuje niestandardowe identyfikatory za pomocą Core Graphics. Są to tylko podklasy UIView, więc układasz je za pomocą ich ramek, tak jak każdej innej podklasy UIView.

Użyłem tej biblioteki wiele razy i zawsze byłem zadowolony z wyników. Elastyczny, łatwy w użyciu. Całkowicie go polecam.

+7

Istnieje również kakao pod Custom Badge - http://cocoadocs.org/docsets/CustomBadge/2.0/Classes/CustomBadge.html –

1

nie wiem jak to zrobić po wyjęciu z pudełka i szczerze wątpię, że Apple zbudowany, że do SDK.

W każdym razie możesz utworzyć niestandardowy widok za pomocą przycisku, dodać tło plakietki jako UIImageView i umieścić na nim etykietę, w której będzie trzymana liczba znaczków.

To szybkie rozwiązanie, może lepiej byłoby utworzyć niestandardową podklasę UIButton i dodaj swoją odznakę rzeczy jako podrzędny

+4

Do * not * subclass UIButton - to nie działa dobrze, tzn.masz tylko klasę wygody dla budownictwa. Ponadto nie ma potrzeby widoku "pojemnika" dla przycisku. – Eiko

1

pójdę podobny sposób jak @ Björn Kaiser: Użyj przycisku jak chcesz to, a następnie dodaj niestandardowy widok z tą odznaką jako podzbiorem - zrobiłem to i działa dobrze.

Jeśli chodzi o widok, możesz narysować go, jak chcesz. Można wyciągnąć go ręcznie lub skorzystać CoreAnimation i niech to zrobić główną część, czyli theBadge.layer.cornerRadius = ...; aby nadać mu okrągły kształt, narysuj tekst/numer w drawRect: lub dodać go jako etykieta itp

3

Klasa używa Apple jest _UIBadgeView (https://github.com/nst/iOS-Runtime-Headers/blob/master/Frameworks/UIKit.framework/_UIBadgeView.h), ale oczywiście ta klasa jest prywatna (uwaga na podkreślenie) i nie jest udokumentowana.

Oto kolejna klasa, która implementuje ten widok o tym samym wyglądzie co Apple, a jednocześnie umożliwia jego dostosowanie: https://github.com/JaviSoto/JSBadgeView. Wspaniałą cechą tego jest to, że pozwala on automatycznie umieścić znaczek względem innego widoku w jednym z jego rogów.

Powiązane problemy