2012-05-07 8 views
6

Estoy usando la función StoryBoard para mi proyecto de iPhone. En el guión gráfico, tengo un controlador de vista con una vista de tabla usando prototipos de celdas. Dentro de la celda del prototipo, tengo un UIButton (rectángulo redondeado) conectado a una clase UIButton subclase. La vista de tabla obtiene sus datos de una matriz, y los datos se imprimen en cellForRowAtIndexPath.UIButton setTitleColor y setImage no funciona

Dentro de cellForRowAtIndexPath, modifico condicionalmente la apariencia de la celda. Esto es cuando empiezo a tener problemas. Puedo cambiar con éxito el texto del botón. Sin embargo, si intento de cambiar la imagen del botón, usando:

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

se cambia la imagen, pero el texto desaparece.

Si intento cambiar el color del texto del botón, usando:

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

No ocurre nada en absoluto. El color sigue siendo el mismo (a menos que también intente cambiar la imagen, en cuyo caso desaparece por completo).

Estoy sintiendo que estoy haciendo algo fundamentalmente malo aquí - ¿tiene alguna sugerencia?

Respuesta

4

uso

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

para cambiar la imagen con el texto dejado

uso

btn.titleLabel.textColor = yourcolor; 

para cambiar el color del texto

+1

Genial, la imagen está configurada correctamente ahora (el texto no desaparece).Sin embargo, no sucede nada con el color del texto ... – tremolo

3

Definir myButton que a continuación y check.This pueden ser el mal en su código code.The es:

myButton = [UIButton buttonWithType:UIButtonTypeCustom]; 

Esta parte está recién editted:

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

no se agrega mediante programación el botón - se añade en el guión gráfico. – tremolo

0

supongo que lo que quiere es cambiar su botón de fondo:

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

Su texto desaparece porque se ha configurado la imagen en la parte frontal botón como imagen principal del botón.

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

Es necesario configurar la imagen del botón de fondo para que el texto sería visible como la imagen se dibuja en la parte trasera de su contexto UIButton.

Así que basta con sustituir la línea anterior de código a:

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

Esta es la manera de establecer diferentes propiedades a un botón personalizado ... También encontramos que las propiedades setBackgroudimage y setTitleColor aquí ...

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]; 

gracias u ..

Cuestiones relacionadas