L'impostazione dell'immagine UIButton produce un pulsante blu in iOS 7


5 Answers

Sembra che iOS 7 stia utilizzando l'immagine fornita proprio come maschera alfa per visualizzare il colore della tinta del pulsante. Cambiare il tipo di pulsante in UIButtonTypeCustom fatto il trucco per me (grazie a user716216!). L'impostazione dell'immagine come sfondo non funziona sempre se hai già un'immagine di sfondo, come nel mio caso.

Question

Su iOS 6 SDK ho scritto le seguenti righe di codice per visualizzare un'immagine all'interno di un pulsante:

NSURL *thumbURL2 = [NSURL URLWithString:@"http://example.com/thumbs/2.jpg"];
NSData *thumbData2 = [NSData dataWithContentsOfURL:thumbURL2];
UIImage *thumb2 = [UIImage imageWithData:thumbData2];
[btn2 setImage:thumb2 forState:UIControlStateNormal];
[self.view addSubview:btn2];

Ma ora con Xcode 5 e iOS 7 questo non funziona. Il pulsante non contiene l'immagine. Il pulsante è riempito con il colore blu.




Questo ha funzionato per me

[myButton1 setBackgroundImage:[UIImage imageNamed:@"phones.png"] forState:UIControlStateNormal];

Nota: rimuovere l'immagine anteriore prima di fare ciò.




il colore della tinta come clearcolor per tutti e quattro gli stati (Predefinito, Evidenziato, selezionato, disabilitato) ha funzionato per me.




Per rapido:

    let aButton = UIButton.buttonWithType(UIButtonType.Custom) as UIButton



Questo problema è chiamato problema del colore blu del pulsante in xcode. Quando creiamo un pulsante per codice, il pulsante mostra il colore della tinta blu per impostazione predefinita. Ciò può essere risolto assegnando il colore della tinta al nero o al bianco in base al colore della tua cella. Il codice è:

UIImage *closebtnimg = [UIImage imageNamed:@"icon_uncheck.png"];
 UIImage *closebtnimg1 = [UIImage imageNamed:@"icon_checked.png"];

Custombutton *button = [Custombutton buttonWithType:UIButtonTypeRoundedRect];
[button setFrame:CGRectMake(52, 66, 25, 24)];
[button setBackgroundImage:closebtnimg forState:UIControlStateNormal];
[button setBackgroundImage:closebtnimg1 forState:UIControlStateSelected];
[button setTintColor:[UIColor whiteColor]];
[cell.contentView addSubview:button];
[button addTarget:self action:@selector(changeImage:)  forControlEvents:UIControlEventTouchUpInside];



Swift 3:

let image = UIImage(named: "my-image")
myButton.setImage(image.withRenderingMode(.alwaysOriginal), for: .normal)



Related