iphone - guidelines - menu ios
UIButton de tipo UIButtonTypeCustom no mostrará el tÃtulo(iPhone) (5)
¿Debo haber pasado por alto algo completamente obvio? pero mi botón muestra su imagen y tamaño correctamente, pero simplemente no puedo ver el Título para que aparezca.
Hice una prueba realmente simple, el Título ni siquiera aparece cuando hago esto:
CGRect frameBtn = CGRectMake(160.0f, 150.0f, 144.0f, 42.0f);
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
[button setImage:[UIImage imageNamed:@"left_halfscreen_button.png"] forState:UIControlStateNormal];
[button setTitle:@"Hello" forState:UIControlStateNormal];
[button setFrame:frameBtn];
NSLog(@"Title:%@", [button currentTitle]);
//prints "Title:Hello
[self addSubview:button];
Tengo una clase de fábrica que genera botones personalizados para mí y pensé que había desordenado algunos detalles allí, así que moví el código anterior directamente a mi UIView
, el título aún está en blanco.
¿Es esto un error o simplemente me estoy perdiendo algo delante de mis ojos?
Gracias por el par de ojos extra :)
¡Encontré el problema!
No se trata de una imagen que anule el título. Está siendo empujado fuera del cuadro por la imagen.
Intenta usar esto:
[btn setTitleEdgeInsets:UIEdgeInsetsMake(0.0, -img.size.width, 0.0, 0.0 )];
¡Espero eso ayude!
Acabo de tener un problema bastante similar ... Solo establezca el color del título, supongo que el actual es blanco;)
[button setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
Cuando usa UIButton
, el botón usa un tamaño incorporado para su marco.
Debes establecer el marco:
button.frame = CGRectMake(0, 0, width, height);
O incluso mejor y cómodo:
[button sizeToFit];
La imagen anula el título, debe hacer que la imagen sea una imagen de fondo para mostrar el título.
[button setBackgroundImage:[UIImage imageNamed:@"left_halfscreen_button.png"] forState:UIControlStateNormal];
Tuve un problema similar que el título no se mostró. Olvidé establecer la propiedad de marco:
//set the position of the button
button.frame = CGRectMake(100, 170, 100, 30);