Używam przycisku niestandardowego w mojej aplikacji o nazwie „addButton” i chcę go obramować białym kolorem. Jak mogę uzyskać białą ramkę wokół przycisku niestandardowego?
ios
objective-c
iPhone
źródło
źródło
Odpowiedzi:
Możesz ustawić właściwości obramowania w CALayer, uzyskując dostęp do właściwości warstwy przycisku.
Najpierw dodaj kwarc
Ustaw właściwości:
Widzieć:
https://developer.apple.com/documentation/quartzcore/calayer#//apple_ref/occ/cl/CALayer
CALayer w powyższym linku pozwala ustawić inne właściwości, takie jak promień narożnika, maskToBounds itp.
Dobry artykuł na temat zabawy z przyciskami:
https://web.archive.org/web/20161221132308/http://www.apptite.be/tutorial_custom_uibuttons.php
źródło
CGColor
To bardzo proste, po prostu dodaj nagłówek quartzCore w swoim pliku (w tym celu musisz dodać strukturę kwarcową do swojego projektu)
a następnie zrób to
w razie potrzeby można zmienić wartości zmiennoprzecinkowe.
cieszyć się.
Oto typowy nowoczesny kod ...
wygląda podobnie do segmentowanych elementów sterujących.
Po prostu zrób:
źródło
I szybko, nie musisz importować „QuartzCore / QuartzCore.h”
Po prostu użyj:
lub
źródło
Ustawianie warstwy problemem
borderWidth
iborderColor
jest to, że po dotknięciu przycisku granica nie animować efekt podświetlenia.Oczywiście możesz obserwować zdarzenia przycisku i odpowiednio zmieniać kolor obramowania, ale wydaje się to niepotrzebne.
Inną opcją jest utworzenie rozciągliwego UIImage i ustawienie go jako obrazu tła przycisku. Możesz utworzyć zestaw obrazów w swoich Images.xcassets w następujący sposób:
Następnie ustawiasz go jako obraz tła przycisku:
Jeśli obraz jest szablonem, możesz ustawić odcień przycisku, a obramowanie ulegnie zmianie:
Teraz obramowanie zostanie podświetlone wraz z resztą przycisku po dotknięciu.
źródło
borderWidth
.Aby zmienić promień, kolor i szerokość przycisku ustawiam w ten sposób:
źródło
Oto zaktualizowana wersja ( Swift 3.0.1 ) z Ben Packarda odpowiedź .
Wynikowy przycisk może być używany wewnątrz StoryBoard dzięki tagom
@IBDesignable
i@IBInspectable
.Również dwie zdefiniowane właściwości pozwalają ustawić szerokość i kolor obramowania bezpośrednio w programie do tworzenia interfejsu i wyświetlić podgląd wyniku.
Inne właściwości można dodać w podobny sposób, dla promienia obramowania i podświetlenia czasu blaknięcia.
źródło
prepareForInterfaceBuilder
jest wywoływany tylko z IB, a nie podczas uruchamiania aplikacji. Więc ustaw również UIEdgeInsets wawakeFromNib
, wtedy będzie on wyświetlany również podczas uruchamiania aplikacji.Nie musisz
QuartzCore.h
teraz importować . Biorąc iOS 8 SDK i Xcode 6.1 w odwołaniu.Bezpośrednio użyj:
źródło
Oto
UIButton
podklasa, która obsługuje animację stanu podświetlenia bez używania obrazów. Aktualizuje również kolor obramowania, gdy zmienia się tryb odcienia widoku.Stosowanie:
let button = BorderedButton(style: .System) //style .System is important
Wygląd:
źródło
Można to osiągnąć różnymi metodami w Swift 3.0. Pracowano nad najnowszą wersją sierpień - 2017
Bezpośrednio przypisz wartości właściwości borderWidth dla przycisku interfejsu użytkownika:
Ustaw tytuł z domyślnymi wartościami koloru dla przycisku interfejsu użytkownika:
Ustaw obramowanie z domyślnym kolorem dla wartości właściwości obramowania dla przycisku interfejsu użytkownika:
Ustaw kolor zdefiniowany przez użytkownika dla wartości właściwości obramowania dla przycisku interfejsu użytkownika:
Użyj metody Extension, aby przycisk w całej aplikacji wyglądał spójnie i nie ma potrzeby powtarzania wielu wierszy kodu w każdym miejscu.
Użycie w kodzie:
Wyjście przycisku metody rozszerzania:
źródło
Zaktualizuj za pomocą Swift 3
źródło
**** w Swift 3 ****
Aby utworzyć obramowanie
Aby narożnik był zaokrąglony
źródło
Szybki 5
Aby zmienić kolor obramowania, użyj
źródło