Jak zaokrąglać rogi przycisku

Mam obraz prostokąta (jpg) i chcę go użyć do wypełnienia tła przycisku z zaokrąglonym rogiem w xcode.

Napisałem co następuje:

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, który będzie reprezentował Mój przycisk?

Dzięki!
Author: Juan Boero, 2011-02-19

11 answers

Myślę, że mam twój problem, próbowałem następujące rozwiązanie z UITextArea i przypuszczam, że to będzie działać z UIButton, jak również.

Po pierwsze zaimportuj to do swojego .plik m -

#import <QuartzCore/QuartzCore.h>

A następnie w metodzie loadView dodaj następujące linie

    yourButton.layer.cornerRadius = 10; // this value vary as per your desire
    yourButton.clipsToBounds = YES;

Mam nadzieję, że to działa dla Ciebie i jeśli tak, to komunikuj się.

 399
Author: devsri,
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-02-21 05:24:56

Można osiągnąć za pomocą tego atrybutu RunTime

Tutaj wpisz opis obrazka

Możemy wykonać niestandardowy przycisk.zobacz załączony zrzut ekranu.

Uprzejmie zwróć uwagę:

W atrybutach runtime aby zmienić kolor obramowania wykonaj instrukcję

  1. Utwórz klasę kategorii CALayer

  2. W pliku h

    @property(nonatomic, assign) UIColor* borderIBColor;
    
  3. W pliku m:

    -(void)setBorderIBColor:(UIColor*)color {
        self.borderColor = color.CGColor;
    }
    
    -(UIColor*)borderIBColor {
        return [UIColor colorWithCGColor:self.borderColor];
    }
    

Teraz, aby ustawić sprawdzanie koloru obramowania zrzut ekranu

zaktualizowana odpowiedź

Dzięki

 104
Author: Krutarth Patel,
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
2016-09-07 10:56:46

Możesz zajrzeć do mojej biblioteki o nazwie DCKit . Jest napisany na najnowszej wersji Swift .

Możesz utworzyć zaokrąglony róg przycisku / pola tekstowego bezpośrednio z Buildera interfejsu:

Dckit: zaokrąglony przycisk

Posiada również wiele innych fajnych funkcji, takich jak Pola tekstowe z walidacją, kontrolki z obramowaniami, przerywane obramowania, widoki kół i linii włosów itp.

 13
Author: Andrey Gordeev,
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
2016-08-30 12:04:37

przesunięcie do granic promień narożnika w górę, aby uzyskać okrąg:

    self.btnFoldButton.layer.cornerRadius = self.btnFoldButton.frame.height/2.0;

Tutaj wpisz opis obrazka

Jeśli ramka przycisku jest kwadratem, nie ma znaczenia ramka.wysokość lub rama.szerokość. W przeciwnym razie użyj największego z obu.

 8
Author: Javier Calatrava Llavería,
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
2015-12-29 07:22:29

Importuj quartcore framework Jeśli nie ma go w Twoim istniejącym projekcie, zaimportuj #import <QuartzCore/QuartzCore.h>w viewcontroller.m

UIButton *button = [[UIButton buttonWithType:UIButtonTypeRoundedRect]];
CGRect frame = CGRectMake(x, y, width, height); // set values as per your requirement
button.layer.cornerRadius = 10;
button.clipsToBounds = YES;
 6
Author: iAnkit,
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
2014-11-14 14:27:10
UIButton* closeBtn = [[UIButton alloc] initWithFrame:CGRectMake(10, 50, 90, 35)];
//Customise this button as you wish then
closeBtn.layer.cornerRadius = 10;
closeBtn.layer.masksToBounds = YES;//Important
 5
Author: Vinay Mahipal,
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
2016-04-18 19:39:32

Jeśli chcesz zaokrąglony narożnik tylko do jednego lub dwóch narożników, itp... przeczytaj ten post:

[ObjC] - UIButton z zaokrąglonym rogiem - http://goo.gl/kfzvKP

To podklasa XIB / Storyboard. Importuj i ustawiaj obramowania bez zapisu kodu.

 2
Author: elp,
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
2014-04-03 18:20:37

Dla Swift:

button.layer.cornerRadius = 10.0
 2
Author: pableiros,
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
2017-03-10 20:41:22

Zaktualizowano dla Swift 3:

Użyty poniżej kod do round UIButton:

 yourButtonOutletName.layer.cornerRadius = 0.3 *
        yourButtonOutletName.frame.size.height
 2
Author: Kiran jadhav,
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
2017-08-16 07:36:58

Alternatywna odpowiedź, która również ustawia granicę (czyniąc ją bardziej przyciskiem) jest tutaj ... Jak ustawić obramowanie prostokąta dla niestandardowego typu UIButton

 1
Author: Andy A,
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
2017-05-23 12:10:43

Pierwszy zestaw Szerokość=100 i wysokość = 100 przycisku

YourBtn1.layer.cornerRadius=YourBtn1.Frame.size.width/2;
YourBtn1.layer.borderColor=[uicolor blackColor].CGColor;
YourBtn1.layer.borderWidth=1.0f;
 1
Author: iOS Lifee,
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
2016-04-03 10:57:03