ios - Come arrotondare gli angoli di un pulsante




cocoa-touch uibutton rounded-corners (10)

aggiornato per Swift 3:

usato sotto il codice per rendere rotondo l'angolo di UIButton:

 yourButtonOutletName.layer.cornerRadius = 0.3 *
        yourButtonOutletName.frame.size.height

Ho un'immagine rettangolare (jpg) e voglio usarla per riempire lo sfondo di un pulsante con l'angolo arrotondato in xcode.

Ho scritto quanto segue:

UIButton *button = [[UIButton buttonWithType:UIButtonTypeRoundedRect] retain];
CGRect frame = CGRectMake(x, y, cardWidth, cardHeight);
button.frame = frame;
[button setBackgroundImage:backImage forState:UIControlStateNormal];

Tuttavia, il pulsante che ottengo con questo approccio non ha gli angoli arrotondati: è invece un semplice rettangolo che assomiglia esattamente alla mia immagine originale. Come posso ottenere invece un'immagine con un angolo arrotondato per rappresentare il mio pulsante?

Grazie!


Importa il framework QuartCore se non è presente nel progetto esistente, quindi importa #import <QuartzCore/QuartzCore.h> in 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;

Primo set width = 100 e Height = 100 del pulsante

YourBtn1.layer.cornerRadius=YourBtn1.Frame.size.width/2;
YourBtn1.layer.borderColor=[uicolor blackColor].CGColor;
YourBtn1.layer.borderWidth=1.0f;

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

Se vuoi un angolo arrotondato solo a un angolo o due angoli, ecc ... leggi questo post:

[ObjC] - UIButton con angolo arrotondato - http://goo.gl/kfzvKP

È una sottoclasse XIB / Storyboard. Importa e imposta i bordi senza scrivere codice.



Per Swift:

button.layer.cornerRadius = 10.0

Spingendo fino al limite del raggio dell'angolo per ottenere una circonferenza:

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

Se il riquadro del pulsante è un quadrato, non importa frame.height o frame.width. Altrimenti usa il più grande di entrambi.


Potresti voler controllare la mia libreria chiamata DCKit . È scritto sull'ultima versione di Swift .

Sarai in grado di creare direttamente un pulsante d'angolo / campo di testo arrotondato dal generatore di interfacce:

Ha anche molte altre funzioni interessanti, come i campi di testo con convalida, i controlli con i bordi, i bordi tratteggiati, le viste di cerchi e linee sottili ecc.


Soluzione con border-collapse: separate per table e display: inline-table per tbody e thead.

table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0px;
  background: transparent;   
}
table thead {
  display: inline-table;
  width: 100%;
  background: #fc0 url(../images/bg-heading.png) repeat-x 0% 0;
  -webkit-border-top-left-radius: 7px;
  -moz-border-radius-topleft: 7px;
  -webkit-border-top-right-radius: 7px;
  -moz-border-radius-topright: 7px;
    border-radius: 7px 7px 0px 0px;
  padding: 1px;
  padding-bottom: 0;
}

table tbody {
  border: 1px solid #ddd;
  display: inline-table;
  width: 100%;
  border-top: none;        
}




ios cocoa-touch uibutton rounded-corners