Mam obraz prostokątny (jpg) i chcę go użyć do wypełnienia tła przycisku zaokrąglonym rogiem w kodzie xcode.
Napisałem następujące:
UIButton *button = [[UIButton buttonWithType:UIButtonTypeRoundedRect] retain];
CGRect frame = CGRectMake(x, y, cardWidth, cardHeight);
button.frame = frame;
[button setBackgroundImage:backImage forState:UIControlStateNormal];
Jednak przycisk, który otrzymuję przy takim podejściu, nie ma zaokrąglonych rogów: jest to zwykły prostokąt, który wygląda dokładnie tak, jak mój oryginalny obraz. Jak mogę zamiast tego uzyskać obraz z zaokrąglonym rogiem przedstawiający mój przycisk?
Dzięki!
ios
cocoa-touch
uibutton
rounded-corners
double07
źródło
źródło
Możesz to osiągnąć dzięki tym atrybutom RunTime
możemy zrobić niestandardowy przycisk. wystarczy zobaczyć zrzut ekranu w załączeniu.
uprzejmie zwróć uwagę:
w atrybutach środowiska wykonawczego, aby zmienić kolor obramowania, postępuj zgodnie z tą instrukcją
utwórz klasę kategorii CALayer
w pliku h
w pliku m:
teraz, aby ustawić zrzut ekranu sprawdzania koloru obramowania
dzięki
źródło
borderColor
. Ale wtedy zawsze używa czarnego dla borderColor.@property(nonatomic, assign) UIColor* borderIBColor;
(co nie koliduje z inną nazwą) w pliku nagłówkowym, a implementacja jest następująca:-(void)setBorderIBColor:(UIColor*)color{self.borderColor = color.CGColor;} -(UIColor*)borderIBColor{return [UIColorcolorWithCGColor:self.borderColor];}
Możesz sprawdzić moją bibliotekę o nazwie DCKit . Jest napisany w najnowszej wersji Swift .
Za pomocą narzędzia do tworzenia interfejsów można bezpośrednio utworzyć zaokrąglony narożny przycisk / pole tekstowe:
Posiada również wiele innych fajnych funkcji, takich jak pola tekstowe z weryfikacją, elementy sterujące z ramkami, linie przerywane, widoki kół i linii włosów itp.
źródło
Przesunięcie do granicy promienia narożnika w górę, aby uzyskać okrąg:
Jeśli ramka przycisku jest kwadratem, nie ma znaczenia frame.height ani frame.width. W przeciwnym razie użyj największego z obu.
źródło
Zaimportuj środowisko QuartCore, jeśli nie ma go w istniejącym projekcie, a następnie zaimportuj
#import <QuartzCore/QuartzCore.h>
w viewcontroller.mźródło
źródło
Najpierw ustaw szerokość = 100 i wysokość = 100 guzika
źródło
Jeśli chcesz zaokrąglony narożnik tylko do jednego lub dwóch rogów itp. ... przeczytaj ten post:
[ObjC] - UIButton z zaokrąglonym rogiem - http://goo.gl/kfzvKP
To podklasa XIB / Storyboard. Importuj i ustawiaj granice bez pisania kodu.
źródło
Dla Swift:
źródło
użyte poniżej kodu, aby zrobić rundę narożną UIButton:
źródło
Wypróbuj mój kod. Tutaj możesz ustawić wszystkie właściwości przycisku UIB, takie jak kolor tekstu, kolor tła, promień narożnika itp.
Teraz zadzwoń tak
źródło
Alternatywna odpowiedź, która również ustawia ramkę (upodabnia ją do przycisku) jest tutaj ... Jak ustawić prostokątną ramkę dla niestandardowego typu UIButton
źródło
W systemie iOS SWift 4
źródło
Dla celu C :
Dla Swift :
źródło
Aktualizacja Swift 4
Wypróbowałem też wiele opcji, ale nie byłem w stanie uzyskać rundy UIButton. Dodałem kod promienia narożnika wewnątrz
viewDidLayoutSubviews()
Rozwiązanego problemu.Możemy również dostosować cornerRadius w następujący sposób
źródło