Buduję aplikację za pomocą swift w najnowszej wersji Xcode 6 i chciałbym wiedzieć, jak mogę zmodyfikować mój przycisk, aby miał zaokrągloną ramkę, którą w razie potrzeby mógłbym dostosować. Jak to zrobisz, jak mogę zmienić kolor samej ramki bez dodawania do niej tła? Innymi słowy, chcę lekko zaokrąglony przycisk bez tła, tylko 1-punktowa ramka określonego koloru.
232
titleEdgeInsets
.Aby wykonać tę pracę w scenorysie (Inspektor konstruktora interfejsów)
Za pomocą
IBDesignable
możemy dodać więcej opcji do Inspektora konstruktora interfejsówUIButton
i dostosować je w serii ujęć. Najpierw dodaj następujący kod do swojego projektu.Następnie po prostu ustaw atrybuty przycisków w serii ujęć.
źródło
Stworzyłem prostą sublcass UIButton, który używa
tintColor
kolorów tekstu i obramowania, a po podświetleniu zmienia tło natintColor
.Wykorzystuje to rozszerzenie UIImage, które tworzy obraz z koloru, znalazłem ten kod tutaj: https://stackoverflow.com/a/33675160
Działa najlepiej, gdy w kreatorze interfejsów jest ustawiony typ Niestandardowy, ponieważ domyślny typ systemu nieznacznie modyfikuje kolory po podświetleniu przycisku.
źródło
Ta klasa oparta jest na wszystkich komentarzach i sugestiach w odpowiedziach, a także może być konfigurowalna bezpośrednio z xcode. Skopiuj do projektu i wstaw dowolny UIButton i zmień, aby użyć niestandardowej klasy, teraz po prostu wybierz kolor obramowania lub tła z xcode dla stanów normalnych i / lub podświetlonych.
źródło
Foundation
podczas importowaniaUIKit
naprawdę wystarczy?Na podstawie odpowiedzi @returntrue udało mi się zaimplementować ją w Konstruktorze interfejsów.
Aby zaokrąglić rogi przycisk za pomocą Konstruktora interfejsów, dodaj klucz
Path = "layer.cornerRadius"
zType = "Number"
iValue = "10"
(lub inną wymaganą wartością) w „User Defined RunTime Attribute
”Identity Inspector
przycisku.źródło
Możesz użyć tej podklasy UIButton, aby dostosować UIButton do swoich potrzeb.
odwiedź to repozytorium github w celach informacyjnych
źródło
Myślę, że najłatwiejszym i najczystszym sposobem jest użycie protokołu, aby uniknąć dziedziczenia i powtarzania kodu. Możesz zmienić te właściwości bezpośrednio z scenorysu
Aktualizacja
W tym linku można znaleźć przykład z narzędziem Traceable Protocol
źródło
źródło
na marginesie, upewnij się, że twój przycisk nie jest podklasą żadnej niestandardowej klasy w scenariuszu, w takim przypadku najlepszym miejscem w kodzie powinna być klasa niestandardowa, ponieważ kod własny działa tylko z niestandardowej klasy, jeśli twój przycisk jest podklasą domyślną Klasa UIButton i jej wylot, mam nadzieję, że może to pomóc każdemu zastanawiać się, dlaczego radiotelefony narożne nie działają na mój przycisk z kodu.
źródło
...
Myślę, że dla promienia wystarczy ten parametr:
źródło
SPRÓBUJ TEN obramowanie przycisku z zaokrąglonymi narożnikami
źródło
źródło
Możesz podklasować
UIButton
i dodawać@IBInspectable
do niego zmienne, dzięki czemu możesz konfigurować parametry przycisku niestandardowego za pomocą StoryBoard „Inspektora atrybutów”. Poniżej zapisuję ten kod.źródło
Myślę, że to prosta forma
źródło