Jak Mogę dodać odznakę do standardowego UIButton? [zamknięte]
Czy można dodać plakietkę standardowo wyglądającą do standardowego UIButton
?
Jeśli nie jest wspierany częściowo natywnie, jaki byłby najprostszy sposób, aby to osiągnąć?
Przykładowy obrazek:
6 answers
Oto bardzo fajna Klasa autorstwa Saschy Paulus o nazwie CustomBadge , która buduje i renderuje niestandardowe odznaki za pomocą grafiki Core. Są to tylko podklasy UIView, więc układasz je używając ich ramki, tak jak każda inna podklasa UIView.
Korzystałem z tej biblioteki wiele razy i zawsze byłem zadowolony z wyników. Elastyczny, łatwy w użyciu. Zdecydowanie polecam.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-11-14 04:46:32
Możesz sprawdzić kilka opcji tutaj: Cocoacontrols Badges
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-03-20 15:32:17
Klasa, której używa Apple to _UIBadgeView
(https://github.com/nst/iOS-Runtime-Headers/blob/master/Frameworks/UIKit.framework/_UIBadgeView.h), ale oczywiście ta klasa jest prywatna (zwróć uwagę na podkreślenie) i nie jest udokumentowana.
Oto kolejna klasa, która implementuje ten widok z takim samym wyglądem i stylem jak Apple, jednocześnie pozwalając ci go dostosować: https://github.com/JaviSoto/JSBadgeView . wspaniałą rzeczą w tym jest to, że pozwala ustawić odznakę względem innego widoku automatycznie, w jednym z jego narożników.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-09-09 22:48:45
Mamy widok odznaki w Nimbus, który jest super łatwy w użyciu i dobrze udokumentowany:
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-06-19 10:48:46
Nie wiem, jak to się robi po wyjęciu z pudełka i szczerze wątpię, że Apple wbudowało to w SDK.
W każdym razie, możesz utworzyć niestandardowy widok za pomocą przycisku, dodać tło odznaki jako Widok UIImageView i umieścić na nim etykietę, aby utrzymać liczbę odznak.
Jest to szybkie rozwiązanie, może lepiej utworzyć niestandardową podklasę UIButton
i dodać swoje znaczki jako subview
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-01-18 15:52:44
Poszedłbym w podobny sposób jak @ Björn Kaiser: użyj przycisku, jak chcesz, a następnie Dodaj niestandardowy widok z tą plakietką jako subview do niego - zrobiłem to i działa dobrze.
Jeśli chodzi o Widok, możesz go narysować, jak chcesz. Możesz narysować go ręcznie lub użyć CoreAnimation i pozwolić mu zrobić główną część, np. theBadge.layer.cornerRadius = ...;
aby nadać mu okrągły kształt, narysować tekst / numer w drawRect:
lub dodać go jako etykietę itp.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-01-18 20:27:25