Wie kann man verschiedene Schriftarten für die verschiedenen UIbutton-Zustände setzen? Danke für Ihre Hilfe zu diesem Thema.Verschiedene Schriftarten für die verschiedenen Zustände von UIButton setzen
Antwort
können Sie setzen Schrift auf Entwurfsansicht auf, um weitere Informationen:
Sie das alles selbst in Interface Builder festlegen. Es sei denn, Sie haben sehr viele Gründe, dies im Code zu tun. Hier ist, wie es in IB -
Öffnen Sie die rechte Seitenleiste & dann klicken Sie auf "State Config", dort sehen Sie die verschiedenen Zustände der Schaltfläche, Standard, hervorgehoben, ausgewählte & Deaktiviert. Jetzt können Sie verschiedene Bilder für jeden Zustand, verschiedene Schriftarten & Schriftfarben für jeden Zustand einstellen. Hopr das hilft ...
Dank ..!
Hier ist mein funktionierender Codeblock. IB_DESIGNABLE
ist nur eine winzige Verbesserung die Ergebnisse sichtbar gemacht auf dem 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
Sie gestaltbares MyButton
s Schriftart in dem Interface Builder wie diese
@inforeqd Bitte lassen Sie mich wissen, wenn diese Lösung für yo funktioniert – Ducky
einfach Ihre benutzerdefinierte Schaltfläche erstellen reflektierte sehen zu machen . Layout-Untersichten überschreiben Stellen Sie die erforderlichen Schriftarten ein.
// 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
Dies ist eine sehr coole Frage, die mich dazu veranlasst eine Unterklasse von UIButton
zu machen, die die Einstellung der staatlichen Schriftarten erlaubt!
Ich schrieb auch einige Beispielcode, der zeigt, wie Sie die Schriftart einstellen. Wenn Sie den Interface Builder verwenden, legen Sie die Klasse der Schaltfläche auf ConfigurableButton
fest. Im Code muss die Schaltfläche auch als ConfigurableButton
deklariert werden, da ich neue Eigenschaften hinzugefügt habe, und eine setFont:forState:
Methode.
Bitte hinterlassen Sie einen Kommentar für Verbesserungen, die gemacht werden können!
View-Controller-Implementierung
#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
Die einfachste Lösung ist ein zugeschrieben Titel für jeden UIControl
Zustand zu setzen:
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. Handle verschiedene Zustände
- 2. Verschiedene Bilder für markierte UIButton-Status
- 3. Mehrsprachige Website mit verschiedenen Schriftarten
- 4. verschiedenen Saiten für verschiedene Bildschirmgrößen
- 5. Verschiedene Schriftarten in Postscript-Text
- 6. Wie verschiedene Spalten für die Zeilen in android RecycleView setzen
- 7. Ändern von Schriftarten für Graphen in R
- 8. Benutzerdefinierter Schriftarttitel für UIButton
- 9. AASM: Übergänge in 2 verschiedene Zustände, abhängig von den Bedingungen
- 10. css verschiedene Schriftgrößen auf verschiedenen Familien
- 11. - UIButton - Hintergrundbild für Behinderte
- 12. verschiedene Deckkraft für verschachtelte Elemente setzen
- 13. Html in Textansicht mit verschiedenen Schriftarten für fett und kursiv
- 14. Setzen Sie eine UIButton auf die Größe einer UICollectionViewCell
- 15. Verschiedene Schriftarten mit Bootstrap Glyphicons auf Azure
- 16. Cookie für NUR zwei verschiedene Subdomains setzen
- 17. UIButton flackert wenn gedrückt
- 18. Anwenden von verschiedenen Jackson-Filter für verschiedene Jersey REST Serviceanrufe
- 19. MonoTouch.Dialog: Verschiedene Schriftarten innerhalb desselben StringElement verwenden
- 20. TextView mit verschiedenen Schriftarten und Stilen?
- 21. Wie verwenden Sie verschiedene Bilder für normale vs aktive Zustände bei Musen für Registerkarten mit Registerkarten?
- 22. Verschiedene Nachrichten für CompletionException unter verschiedenen Nebenversionen von Java 8
- 23. Festlegen von Rechteckrahmen für benutzerdefinierten Typ UIButton
- 24. Setzen Sie die Mitte eines uibutton programmgesteuert - SWIFT
- 25. Zustände und kontrollierbare Spielobjekte
- 26. Verschiedene Guss Betreiber von verschiedenen Compilern verwendet
- 27. Google Maps - Verschiedene Routen von verschiedenen Punkten
- 28. Verschiedene Felder auf verschiedenen Benutzertypen
- 29. Git: Wie erstelle ich verschiedene nicht zusammengefügte Zustände?
- 30. Aktivitätsvariablen aus verschiedenen Aktivitäten setzen
Ich denke, was Dinesh versucht zu sagen, dass Sie ein Bild mit einer anderen Schriftart erstellen und dann die Taste zu diesem Bild. –
Ok jetzt bin ich Update Antwort ..! – Dinesh
jetzt iam update antwort, können sie folgende bild zu status config zu combo in uibutton ändern, um die schrift für uibutton verschiedenen zuständen zu chagen. – Dinesh