2012-05-07 12 views
6

Sto utilizzando la funzione StoryBoard per il mio progetto iPhone. Nello storyboard, ho un controller di visualizzazione con una vista tabella utilizzando celle prototipo. All'interno della cella del prototipo, ho un UIButton (rettangolo arrotondato) collegato a una classe UIButton sottoclassata. La tabella visualizza i dati da una matrice e i dati vengono stampati in cellForRowAtIndexPath.UIButton setTitleColor e setImage non funziona

All'interno di cellForRowAtIndexPath, modifico condizionatamente l'aspetto della cella. Questo è quando comincio ad avere problemi. Sono in grado di modificare correttamente il testo del pulsante. Tuttavia, se si tenta di cambiare l'immagine del pulsante, utilizzando:

[cell.myButton setImage:[UIImage imageNamed:@"mynewimage.png"] forState:UIControlStateNormal]; 

l'immagine è cambiata, ma il testo scompare.

Se tento di cambiare il colore del testo del pulsante, utilizzando:

[cell.myButton setTitleColor:[UIColor colorWithRed:0 green:0 blue:0 alpha:.77] forState:UIControlStateNormal] 

Non succede nulla di sorta. Il colore rimane lo stesso (a meno che non provi anche a cambiare l'immagine, nel qual caso scompare completamente).

Sto percependo che sto facendo qualcosa di fondamentalmente sbagliato qui - hai qualche suggerimento?

risposta

4

uso

- (void)setBackgroundImage:(UIImage *)image forState:(UIControlState)state; 

per cambiare immagine con testo a sinistra

uso

btn.titleLabel.textColor = yourcolor; 

di cambiare il colore del testo

+1

Grande, l'immagine è impostata correttamente ora (il testo non scompare).Tuttavia, non accade nulla con il colore del testo ... – tremolo

3

Definire myButton come qui sotto e check.This può essere il male nel codice code.The è:

myButton = [UIButton buttonWithType:UIButtonTypeCustom]; 

questa parte è di recente editted:

[myButton setBackgroundImage:yourimage forState:UIControlStateNormal]; 
    [myButton setTitleColor:yourcolor forState:UIControlStateNormal]; 
+0

il pulsante non è a livello di codice aggiunto - si aggiunge nella Storyboard. – tremolo

0

Credo che ciò che si vuole è quello di cambiare il pulsante di fondo:

[cell.myButton setBackgroundImage:[UIImage imageNamed:@"mynewimage.png"] forState:UIControlStateNormal]; 
0

Il testo scompare perché è stata impostata l'immagine a lato anteriore pulsante come immagine principale del pulsante.

[cell.myButton setImage:[UIImage imageNamed:@"mynewimage.png"] forState:UIControlStateNormal]; 

è necessario impostare l'immagine di sfondo del pulsante in modo che il testo sarebbe stato visibile come l'immagine verrà disegnata sul lato posteriore del contesto UIButton.

Quindi basta sostituire la riga di codice precedente a:

[cell.myButton setBackgroundImage:[UIImage imageNamed:@"mynewimage.png"] forState:UIControlStateNormal]; 
2

questo è il modo di impostare diverse proprietà a un pulsante personalizzato ... È anche scoprire che le proprietà setBackgroudimage e setTitleColor qui ...

UIButtin *myButton = [UIButton buttonWithType:UIButtonTypeCustom]; 
    [myButton setFrame:CGRectMake(165, 205, 65, 40)]; 
    [myButton setTitleColor:[UIColor colorWithRed:0 green:0 blue:0 alpha:.77] forState:UIControlStateNormal]; 
    [myButton setTitle:@"Hi....." forState:UIControlStateNormal]; 
    [myButton addTarget:self action:@selector(btnClicked:)  forControlEvents:UIControlEventTouchUpInside]; 
    [myButton setBackgroundImage:[UIImage imageNamed:@"mynewimage.png"] forState:UIControlStateNormal]; 
    [cell addSubview:myButton]; 

Thank u ..

Problemi correlati