Uwaga: to wydawało się nie działać dla mnie (być może dlatego, że jestem na Swift 3.1?). Wersja Parasa Joshiego ( stackoverflow.com/a/29701061/225813 ) jednak zadziałała
Ashley Coolman
Zmieniłem odpowiedź. to na pewno zadziała dla Ciebie .. Ashley Coolman
Shashi Verma
1
Nie musisz jawnie wywoływać init w swift 3.
ibrahimab
Czy można użyć więcej niż jednego koloru?
Gökhan Çokkeçeci
3
Czy jest jakaś różnica między twoimi dwiema wersjami?
Fogmeister
88
W Swift 4 możesz ustawić kolor i szerokość obramowania na UIControls za pomocą poniższego kodu.
@ShashiVerma nie ma za co. Do głębokiego szczegółów na temat warstw, czytać różne dokumenty referencyjne klasa Apple obiektu, więc jest to również pomocne dla ciebie :)
Paras Joshi
16
Użyj @IBDesignable i @IBInspectable, aby zrobić to samo.
Są one wielokrotnego użytku, łatwo modyfikowalne z poziomu Interface Builder, a zmiany są natychmiast odzwierciedlane w Storyboard
Bardziej podoba mi się to rozwiązanie, ponieważ jest to rozwiązanie wielokrotnego użytku, w którym ustawiliśmy UIView na niestandardowy widok, ale nadal pozostawia więcej zmian.
n0rm
To był mój ulubiony sposób na osiągnięcie tego celu, ale w trybie ciemnym nie działa to dobrze. Pobiera styl kolorów obecnego MacOS i używa statycznego. Ale wbudowany @IBDesignablei @IBInspectablewszystko działa dobrze, więc powinien istnieć sposób, aby organy celne mogły używać zasobów koloru również w trybie ciemny / jasny - każdy wie, jak to osiągnąć?
Nomad Developer
12
Możesz napisać rozszerzenie, aby używać go ze wszystkimi widokami UIV, np. UIButton, UILabel, UIImageView itp. Możesz dostosować moją następującą metodę zgodnie ze swoimi wymaganiami, ale myślę, że będzie dobrze działać dla Ciebie.
W jakiś sposób nic nie robi, chyba że wyraźnie ustawisz również szerokość obramowania.
Nicolas Miari
@NicolasMiari, czego można by się spodziewać ... nie widać koloru obramowania, dla którego nie ustawiłeś rozmiaru.
Jono Guthrie,
Przepraszam, zapomniałem wspomnieć, że odnosiłem się do pól tekstowych ... które od początku wydają się mieć domyślną niezerową szerokość obramowania. Jednak starałem się uzyskać odbicie koloru, który ustawiłem, dopóki wyraźnie nie ustawiłem szerokości obramowania.
Zamiast dodawać nową odpowiedź, musieliście wysłać prośbę o zmianę do pierwotnej osoby odpowiadającej
Rajan Maheshwari
@RajanMaheshwari Proszę nie. Nie dodawaj kodu do odpowiedzi innych osób. Aktualizacje powinny być publikowane jako własne, a nie w innych odpowiedziach. W ten sposób każdy plakat jest odpowiedzialny za to, co publikuje ...
Eric Aya
@EricAya nie chodzi o aktualizację odpowiedzi. To jest prośba o edycję, może być w komentarzach do osoby odpowiadającej. Czy masz to, co chciałem przekazać.
Odpowiedzi:
Jeśli używasz Swift 2.0+
źródło
W Swift 4 możesz ustawić kolor i szerokość obramowania na UIControls za pomocą poniższego kodu.
<Swift 4 , Możesz ustawić szerokość i kolor obramowania UIView za pomocą poniższego kodu.
źródło
Użyj @IBDesignable i @IBInspectable, aby zrobić to samo.
Są one wielokrotnego użytku, łatwo modyfikowalne z poziomu Interface Builder, a zmiany są natychmiast odzwierciedlane w Storyboard
Dopasuj obiekty w scenorysie do określonej klasy
Fragment kodu:
Umożliwia łatwą modyfikację z poziomu Interface Builder:
źródło
@IBDesignable
i@IBInspectable
wszystko działa dobrze, więc powinien istnieć sposób, aby organy celne mogły używać zasobów koloru również w trybie ciemny / jasny - każdy wie, jak to osiągnąć?Możesz napisać rozszerzenie, aby używać go ze wszystkimi widokami UIV, np. UIButton, UILabel, UIImageView itp. Możesz dostosować moją następującą metodę zgodnie ze swoimi wymaganiami, ale myślę, że będzie dobrze działać dla Ciebie.
Stosowanie:
źródło
szybki 3
źródło
Swift 5.2 , rozszerzenie UIView +
Użyłeś tego rozszerzenia;
źródło
Wpisz kod w swoim
viewDidLoad()
I możesz ustawić za
Color
pomocąRGB
Dowiedz się czegoś o
CALayer
wUIKit
źródło
swift 3.0
źródło
Możemy stworzyć na to metodę. Po prostu go użyj.
źródło
Swift 3.0
źródło