¿Cómo se pueden establecer diferentes tipos de letra para los diferentes estados del botón UI? Gracias por tu ayuda en este.Configuración de diferentes fuentes para los diferentes estados de UIButton
Respuesta
Puede establecer la fuente en Vista de diseño para más detalles:
Puede configurar todo esto en sí mismo Interface Builder. A menos que tenga muchas razones para hacerlo en código. He aquí cómo hacerlo en IB -
Abrir la barra lateral derecha & continuación, haga clic en "Configuración de Estado", hay que ver los diversos estados del botón, por defecto, ha destacado, seleccionada & personas de movilidad reducida. Ahora puede establecer diferentes imágenes para cada estado, diferentes tipos de fuente & colores de fuente para cada estado. Hopr esto ayuda ...
Gracias ..!
Aquí está mi bloque de código de trabajo. IB_DESIGNABLE
es sólo una pequeña mejora para que los resultados visualizable en la Interfaz del generador :-)
@interface MyButton : UIButton
@end
IB_DESIGNABLE @implementation MyButton
// Here you can override the look & feel for each state
// Actually not only fontSize, but any writable properties ^_^
- (void)setEnabled:(BOOL)enabled {
[super setEnabled:enabled];
self.titleLabel.font = enabled ? [UIFont systemFontOfSize:14] : [UIFont systemFontOfSize:10];
}
- (void)setHighlighted:(BOOL)highlighted {
[super setHighlighted:highlighted];
self.titleLabel.font = highlighted ? [UIFont systemFontOfSize:14] : [UIFont systemFontOfSize:12];
}
- (void)setSelected:(BOOL)selected {
[super setSelected:selected];
self.titleLabel.font = selected ? [UIFont boldSystemFontOfSize:14] : [UIFont systemFontOfSize:12];
}
@end
Se puede ver diseños a MyButton
s de letra refleja en el constructor de interfaces como esto
@inforeqd Por favor, hágame saber si esta solución funciona para usted – Ducky
Basta con crear su botón personalizado . Anular subvistas de diseño. Configure sus fuentes requeridas.
// Interface
@interface EezyButton : UIButton
@end
//Implementation
#import "EezyButton.h"
@implementation EezyButton
- (void)layoutSubviews{
if (self.state == UIControlStateNormal) {
[self.titleLabel setFont:[UIFont systemFontOfSize:12]];
}
else if (self.state == UIControlStateHighlighted){
[self.titleLabel setFont:[UIFont systemFontOfSize:25]];
}
else if (self.state == UIControlStateDisabled){
[self.titleLabel setFont:[UIFont systemFontOfSize:12]];
}
else if (self.state == UIControlStateSelected){
[self.titleLabel setFont:[UIFont systemFontOfSize:28]];
}
[super layoutSubviews];
}
@end
Ésta es una pregunta muy fresco, lo que me llevó a hacer una subclase de UIButton
que permite la configuración de fuentes estatales!
También escribí un código de ejemplo que muestra cómo configurar la fuente. Si está utilizando Interface Builder, configure la clase del botón en ConfigurableButton
. En el código, el botón también debe declararse como ConfigurableButton
, ya que he agregado nuevas propiedades y un método setFont:forState:
.
¡Deje un comentario para cualquier mejora que se pueda realizar!
Vista Controlador aplicación
#import "ViewController.h"
#import "ConfigurableButton.h"
@interface ViewController()
@property (weak, nonatomic) IBOutlet ConfigurableButton *toggleButton;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
//Set the fonts for button's states
_toggleButton.normalFont = [UIFont fontWithName:@"BradleyHandITCTT-Bold" size:14];
_toggleButton.highlightedFont = [UIFont fontWithName:@"Chalkduster" size:14];
_toggleButton.selectedFont = [UIFont fontWithName:@"Zapfino" size:14];
_toggleButton.disabledFont = [UIFont fontWithName:@"Arial" size:14];
}
@end
ConfigurableButton.h
#import <UIKit/UIKit.h>
IB_DESIGNABLE
/**
* A button that allows fonts to be assigned to each of the button's states.
*
* A state font can be specified using setFont:forState, or through one of the
* four state Font properties.
*
* If a font is not specified for a given state, then
* the System font will be displayed with a font size of 15.
*/
@interface ConfigurableButton : UIButton
@property (strong, nonatomic) UIFont *normalFont;
@property (strong, nonatomic) UIFont *highlightedFont;
@property (strong, nonatomic) UIFont *selectedFont;
@property (strong, nonatomic) UIFont *disabledFont;
/**
* Set a font for a button state.
*
* @param font the font
* @param state a control state -- can be
* UIControlStateNormal
* UIControlStateHighlighted
* UIControlStateDisabled
* UIControlStateSelected
*/
- (void) setFont:(UIFont *)font forState:(NSUInteger)state;
@end
ConfigurableButton.m
#import "ConfigurableButton.h"
@implementation ConfigurableButton
//Sets one of the font properties, depending on which state was passed
- (void) setFont:(UIFont *)font forState:(NSUInteger)state
{
switch (state) {
case UIControlStateNormal:
{
self.normalFont = font;
break;
}
case UIControlStateHighlighted:
{
self.highlightedFont = font;
break;
}
case UIControlStateDisabled:
{
self.disabledFont = font;
break;
}
case UIControlStateSelected:
{
self.selectedFont = font;
break;
}
default:
{
self.normalFont = font;
break;
}
}
}
/**
* Overrides layoutSubviews in UIView, to set the font for the button's state,
* before calling [super layoutSubviews].
*/
- (void) layoutSubviews
{
NSUInteger state = self.state;
switch (state) {
case UIControlStateNormal:
{
[self setTitleFont:_normalFont];
break;
}
case UIControlStateHighlighted:
{
[self setTitleFont:_highlightedFont];
break;
}
case UIControlStateDisabled:
{
[self setTitleFont:_disabledFont];
break;
}
case UIControlStateSelected:
{
[self setTitleFont:_selectedFont];
break;
}
default:
{
[self setTitleFont:_normalFont];
break;
}
}
[super layoutSubviews];
}
/**
* Private
*
* Convenience method that falls back to the System font,
* if no font is configured.
*/
- (void) setTitleFont:(UIFont *)font
{
if (!font) {
font = [UIFont systemFontOfSize:15];
}
self.titleLabel.font = font;
}
@end
La solución más fácil es establecer un título atribuido para cada estado UIControl
:
var attributes = [String : AnyObject]()
attributes[NSForegroundColorAttributeName] = UIColor.redColor()
attributes[NSFontAttributeName] = UIFont.systemFontOfSize(15)
let normal = NSAttributedString(string: "normal", attributes: attributes)
button.setAttributedTitle(normal, forState: .Normal)
attributes[NSForegroundColorAttributeName] = UIColor.redColor()
attributes[NSFontAttributeName] = UIFont.boldSystemFontOfSize(15)
let selected = NSAttributedString(string: "selected", attributes: attributes)
button.setAttributedTitle(selected, forState: .Selected)
- 1. Diferentes estados de Ajax para diferentes componentes en PrimeFaces
- 2. Git: ¿cómo crear diferentes estados no fusionados?
- 3. Configuración de fuentes y colores diferentes para la edición sin distracciones en Sublime Text 2
- 4. Diferentes extensiones de archivos para diferentes versiones
- 5. Diferentes fragmentos para diferentes orientaciones
- 6. Manejo de formularios y autenticación básica HTTP con diferentes fuentes
- 7. ¿Los diferentes simuladores de 68k tienen diferentes tareas de TRAP?
- 8. ¿Cómo establecer diferentes cadenas localizadas en diferentes estados visuales en WP7 usando Blend?
- 9. ¿Los diferentes fabricantes de ARM ofrecen diferentes conjuntos de instrucciones?
- 10. ¿Qué representan los diferentes estados de llamada en la pila de telefonía de Android?
- 11. Branching: diferentes archivos de configuración para lanzamiento/desarrollo
- 12. XCode Recursos diferentes para diferentes destinos
- 13. ¿Diferentes arquitecturas en los mismos o diferentes árboles de directorios?
- 14. Pros y contras para diferentes formatos de configuración?
- 15. Fuentes idénticas de Java compilan en clases binarias diferentes
- 16. Diferentes tamaños de fuente para diferentes tamaños de pantalla
- 17. ¿Usando diferentes clasificadores para diferentes pruebas JUnit?
- 18. Diferentes archivos security.yml para diferentes entornos
- 19. MySQL - Diferentes motores para diferentes tablas
- 20. ¿Cómo usar diferentes archivos .settings para diferentes entornos en .NET?
- 21. Diferentes métodos de Java para diferentes niveles de API
- 22. ¿Cómo se establecen diferentes límites de escala para diferentes facetas?
- 23. css diferentes tamaños de fuente en diferentes familias
- 24. Diferentes dependencias para diferentes perfiles de construcción en maven
- 25. Especificación de diferentes servidores DNS para dominios diferentes
- 26. Usando diferentes versiones de python para diferentes proyectos en Eclipse
- 27. ¿Cómo especifico diferentes rangos de color para diferentes niveles?
- 28. ¿Cómo establecer diferentes colores de estados presionados para cada elemento listview?
- 29. ¿Diferentes imágenes de 9 parches para diferentes densidades?
- 30. Uso de anotaciones para agregar anotaciones diferentes a diferentes facetas
Creo que lo Dinesh está tratando de decir es que se puede crear una imagen con una fuente diferente y luego configurar el botón para esa imagen. –
Ok, ahora soy la respuesta de actualización ..! – Dinesh
ahora iam actualización respuesta, puede seguir la imagen para indicar la configuración cambiar a combo en uibutton para cambiar la fuente para uibutton diferentes estados. – Dinesh