iphone ios click - UIButton: imposta l'immagine per lo stato evidenziato selezionato





6 Answers

Puoi farlo in Interface Builder.

Seleziona il UIButton che desideri impostare in IB quindi vai attributes inspector .

Nelle schermate, sto usando un tipo di pulsante personalizzato, ma non importa.

swift programmatically insert

Ho impostato le immagini per gli stati del pulsante Normale, Evidenziato e Selezionato, ma quando il pulsante nello stato selezionato e lo premo / evidenziamo non ho visto l'immagine evidenziata ma solo l'immagine in grigio. È possibile impostare un'immagine per lo stato evidenziato quando il pulsante selezionato?

il mio codice:

[button setImage:[UIImage imageNamed:@"normal.png"] forState:UIControlStateNormal];
[button setImage:[UIImage imageNamed:@"pressed.png"] forState:UIControlStateHighlighted];
[button setImage:[UIImage imageNamed:@"checked.png"] forState:UIControlStateSelected];

quando io faccio:

[button setSelected:YES];

e premere il pulsante, l'immagine "pressed.png" non seleziona.




Swift 3

// Default state (previously `.Normal`)
button.setImage(UIImage(named: "image1"), for: [])

// Highlighted
button.setImage(UIImage(named: "image2"), for: .highlighted)

// Selected
button.setImage(UIImage(named: "image3"), for: .selected)

// Selected + Highlighted
button.setImage(UIImage(named: "image4"), for: [.selected, .highlighted])

Per impostare l'immagine di sfondo possiamo usare setBackgroundImage(_:for:)

Swift 2.x

// Normal
button.setImage(UIImage(named: "image1"), forState: .Normal)

// Highlighted
button.setImage(UIImage(named: "image2"), forState: .Highlighted)

// Selected
button.setImage(UIImage(named: "image3"), forState: .Selected)

// Selected + Highlighted
button.setImage(UIImage(named: "image4"), forState: [.Selected, .Highlighted])



In Swift 3.x, è possibile impostare l'immagine evidenziata quando il pulsante è selezionato nel seguente modo:

// Normal state
button.setImage(UIImage(named: "normalImage"), for: .normal) 

// Highlighted state (before button is selected)
button.setImage(UIImage(named: "pressedImage"), for: .highlighted)

// Selected state
button.setImage(UIImage(named: "selectedImage"), for:  .selected)

// Highlighted state (after button is selected)
button.setImage(UIImage(named: "pressedAfterBeingSelectedImage"), 
                for:  UIControlState.selected.union(.highlighted))



Correggimi se sbaglio Facendo

   [button setSelected:YES];

stai cambiando chiaramente lo stato dei pulsanti come selezionato. Quindi, naturalmente, il codice che hai fornito all'immagine sarà quello per lo stato selezionato nel tuo caso checked.png




Ho avuto problemi con l'impostazione imageView.highlighted = NO; (l'impostazione YES ha funzionato correttamente e l'immagine è cambiata in quella evidenziata).

La soluzione stava chiamando [imageView setHighlighted:NO];

Tutto ha funzionato correttamente.




Swift 3+

button.setImage(UIImage(named: "selected_image"), for: [.selected, .highlighted])

O

button.setImage(UIImage(named: "selected_image"), for: UIControlState.selected.union(.highlighted))

Significa che il pulsante corrente nello stato selected , quindi lo tocchi, mostra lo stato di highlight .




Related