2013-07-05 20 views

risposta

1

Subclassing UIButton ed estendendo la setEnabled: metodo sembra funzionare:

- (void) setEnabled:(BOOL)enabled {  
    [super setEnabled:enabled]; 
    if (enabled) { 
     self.imageView.alpha = 1; 
    } else { 
     self.imageView.alpha = .25; 
    } 
} 
+0

fa questo in realtà lavorano per tu? In iOS 7 non riesco a cambiare le impostazioni Alpha per l'immagine del pulsante. – Axeva

0

Sei solo utilizzando una tinta unita per lo sfondo? O stai usando un'immagine?

Se stai usando un'immagine allora si potrebbe utilizzare un'immagine con l'alfa costruito in.

Se stai usando un colore allora si potrebbe impostare l'alpha sul colore.

Tuttavia, la modifica dell'alfa di qualsiasi vista influisce su tutte le viste secondarie.

0

Con un UIButton, è possibile rimuovere lo sfondo impostando lo stile del pulsante su Personalizzato anziché Round Rect. Ciò mantiene intatto il titolo, ma lo sfondo del pulsante rimosso. Se lo stai facendo in Storyboard, puoi modificare lo stile del pulsante nelle proprietà dell'elemento. Per il codice, il formato è:

UIButton *button = [[UIButton alloc] buttonWithType:UIButtonTypeCustom]; 
// Setup frame and add to view 
21

questo funziona per me:

self.myButton.backgroundColor = [UIColor clearColor]; 

o se non si vuole avere tutto chiaro, ma ancora con la trasparenza è possibile utilizzare:

self.myButton.backgroundColor = [UIColor colorWithRed:200.0/255.0 green:200.0/255.0 blue:200.0/255.0 alpha:0.5]; 

Il secondo esempio fornisce il colore grigio con alfa 0,5.

+0

Perché non potrei pensare a questo? Grazie! – Elsint

7

In Swift:

import UIKit 

class SignInUpMenuTableViewControllerBigButton: UIButton { 

    required init(coder aDecoder: NSCoder) { 
     super.init(coder: aDecoder) 
     self.applyCustomDesign() 
    } 

    func applyCustomDesign() { 
     // We set the background color of the UIButton. 
     self.clearHighlighted() 
    } 

    override var highlighted: Bool { 
     didSet { 
      if highlighted { 
       self.highlightBtn() 
      } else { 
       self.clearHighlighted() 
      } 
     } 
    } 

    func highlightBtn() { 
     self.backgroundColor = UIColor.whiteColor().colorWithAlphaComponent(0.0) 
    } 

    func clearHighlighted() { 
     self.backgroundColor = UIColor.whiteColor().colorWithAlphaComponent(0.05) 
    } 

} 
+0

Più uno per 'colorWithAlphaCompnent'! Per Swift 3: 'UIColor.black.withAlphaComponent (0.8)' – kakubei

13

è anche possibile modificare l'alfa del colore nello storyboard,

vedi immagine allegata:

change alpha of color in storyboard/interface builder

Problemi correlati