Come è possibile impostare diversi tipi di carattere per i diversi stati UIbutton? Grazie per il tuo aiuto su questo.Impostazione di diversi tipi di carattere per i diversi stati di UIButton
risposta
È possibile impostare dei caratteri su Visualizzazione Struttura per maggiori dettagli:
È possibile impostare tutto questo in Interface Builder per sé. A meno che non ci siano molte ragioni per farlo nel codice. Ecco come farlo in IB -
Aprire la barra laterale destra & quindi fare clic su "Config. Stato", lì si vedono i vari stati del pulsante, Predefinito, Evidenziato, Selezionato & Disabilitato. Ora puoi impostare immagini diverse per ogni stato, diverso tipo di carattere & colori per ogni stato. Hopr questo aiuta ...
Grazie ..!
Ecco il mio blocco di codice funzionante. IB_DESIGNABLE
è solo un piccolo miglioramento per rendere i risultati visualizzabili sul Interface Builder :-)
@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
Si può vedere designable carattere MyButton
s riflette nel costruttore di interfaccia come questo
@inforeqd Per favore fatemi sapere se questa soluzione funziona per voi – Ducky
Basta creare il tuo pulsante personalizzato . Sovrascrivi le sottoview del layout. Imposta i caratteri richiesti.
// 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
Questa è una domanda molto cool, che mi ha spinto a fare una sottoclasse di UIButton
che consente l'impostazione di font di stato!
Ho anche scritto un codice di esempio che mostra come impostare il carattere. Se si utilizza Interface Builder, impostare la classe del pulsante su ConfigurableButton
. Nel codice, il pulsante deve anche essere dichiarato come ConfigurableButton
, poiché ho aggiunto nuove proprietà e un metodo setFont:forState:
.
Si prega di lasciare un commento per eventuali miglioramenti che possono essere apportati!
View Controller implementazione
#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 soluzione più semplice è quella di impostare un titolo attribuito per ogni UIControl
Stato:
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. Diversi tipi di liste
- 2. Matrici di tipi diversi
- 3. Elenco di tipi diversi?
- 4. Diversi tipi di applicazioni Xcode
- 5. Quali sono i diversi tipi di casi?
- 6. impostazione UIButton carattere
- 7. Matrice bidimensionale di diversi tipi
- 8. raccolta di diversi tipi generici
- 9. xsl: fo diversi colori/tipi di carattere in un blocco
- 10. Utilizzando diversi tipi di carattere in annotate (ggplot2)
- 11. TextView con diversi tipi di carattere e stili?
- 12. Stati Ajax diversi per componenti diversi in PrimeFaces
- 13. Algoritmo per calcolare diversi tipi di memoria
- 14. set_intersection per due diversi tipi di set
- 15. I lambda hanno tipi diversi?
- 16. Elenco di elenchi di tipi diversi
- 17. Diversi tipi di indici di database?
- 18. lua_xmove tra diversi stati lua
- 19. C# restituisce diversi tipi?
- 20. Perché il metodo Arrays.sort di Java utilizza due diversi algoritmi di ordinamento per tipi diversi?
- 21. Modellazione di account per diversi tipi di utenti in Django
- 22. Confronto di tipi diversi nel modello
- 23. creare diversi tipi di distribuzione con setup.py
- 24. Diversi tipi di ereditarietà nello stesso schema
- 25. I diversi produttori di ARM forniscono diversi set di istruzioni?
- 26. Mappa della funzione boost di diversi tipi?
- 27. Recycleview mostra diversi tipi di vista
- 28. Enumerazione rapida su NSArray di tipi diversi
- 29. Accettare diversi tipi di argomenti in Java
- 30. Quali sono i diversi tipi di destinazione a EDE?
Credo che quello che Dinesh sta cercando di dire è che è possibile creare un'immagine con un carattere diverso e quindi impostare il pulsante per quell'immagine. –
Ok ora sono la risposta di aggiornamento ..! – Dinesh
ora iam aggiorna la risposta, è possibile seguire l'immagine per cambiare la configurazione in combo in uibutton per silenziare il font per stati diversi di Uibutton. – Dinesh