[iphone] Disabilitato UIButton non sbiadito o grigio



6 Answers

basta cambiare la configurazione di stato per disabilitare e scegliere quello che vuoi, immagine di sfondo per stato disabilitato

Question

Nella mia app per iPhone, ho un UIButton che ho creato in Interface Builder. Posso abilitarlo e disabilitarlo con successo in questo modo nel mio codice ...

sendButton.enabled = YES;

o

sendButton.enabled = NO;

Tuttavia, l'aspetto visivo del pulsante è sempre lo stesso! Non è sbiadito o grigio. Se tento di cliccarlo, è abilitato o disabilitato come previsto. Mi sto perdendo qualcosa? Non dovrebbe sembrare sbiadito o grigio?

Grazie




Per rendere il pulsante sbiadito quando disabilitato, puoi impostare alpha per questo. Ci sono due opzioni per te:

Primo modo : se vuoi applicare tutti i tuoi pulsanti nella tua app, puoi scrivere extention per UIButton in questo modo:

extension UIButton {

    open override var isEnabled: Bool{
        didSet {
            alpha = isEnabled ? 1.0 : 0.5
        }
    }

}

Secondo modo : se desideri semplicemente applicare alcuni pulsanti nella tua app, puoi scrivere una classe personalizzata da UIButton come di seguito e utilizzare questa classe per la quale desideri applicare:

class MyButton: UIButton {
    override var isEnabled: Bool {
        didSet {
            alpha = isEnabled ? 1.0 : 0.5
        }
    }
}



In Swift :

previousCustomButton.enabled = false
previousCustomButton.alpha = 0.5

o

nextCustomButton.enabled = true
nextCustomButton.alpha = 1.0



Sono bloccato sullo stesso problema. Impostare alpha non è quello che voglio.

UIButton ha " immagine di sfondo " e " colore di sfondo ". Per immagine, UIButton ha una proprietà come

@property (nonatomic) BOOL adjustsImageWhenDisabled

E l'immagine di sfondo viene disegnata più chiara quando il pulsante è disabilitato. Per il colore di sfondo, l'impostazione di alfa, la soluzione di Ravin, funziona bene.

Innanzitutto, devi controllare se hai deselezionato la casella "Disabilita regola immagine" sotto Utilità-Attributi.
Quindi, controlla il colore di sfondo per questo pulsante.

(Spero sia utile. Questo è un vecchio post: le cose potrebbero essere cambiate in Xcode).




È possibile utilizzare adjustsImageWhenDisabled che è la proprietà di UIButton
(@property (nonatomic) BOOL adjustsImageWhenDisabled)

Ex:

 Button.adjustsImageWhenDisabled = false



#import "UIButton+My.h"
#import <QuartzCore/QuartzCore.h>
@implementation UIButton (My)


-(void)fade :(BOOL)enable{
    self.enabled=enable;//
    self.alpha=enable?1.0:0.5;
}

@end

.h:

#import <UIKit/UIKit.h>
@interface UIButton (My)

-(void)fade :(BOOL)enable;

@end



Prova a impostare le diverse immagini per UIControlStateDisabled (immagine grigia disabilitata) e UIControlStateNormal (Immagine normale) in modo che il pulsante generi lo stato disabilitato per te.






Related