Sie Standardschaltfläche wie folgt verwenden können:
UIButton* button = [UIButton buttonWithType:UIButtonTypeSystem];
[button setTranslatesAutoresizingMaskIntoConstraints:NO];
[button setTitle:@"Normal" forState:UIControlStateNormal];
[button addTarget:self action:@selector(buttonTouched:) forControlEvents:UIControlEventTouchUpInside];
[button setTitle:@"Selected" forState:UIControlStateSelected];
[self.view addSubview:button];
[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"|[button]" options:0 metrics:nil views:NSDictionaryOfVariableBindings(button)]];
[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|[button]" options:0 metrics:nil views:NSDictionaryOfVariableBindings(button)]];
Wenn Sie benutzerdefinierte Schaltfläche verwenden, dann ist der einfachste Weg, den ich mir vorstellen kann, UIButton der Unterklasse und fügen Sie Ihre benutzerdefinierte UILabel in. Hier ist mein kurzer Code von dem, was ich meine:
@interface CustomButton : UIButton
{
NSString* _normalTitle;
NSString* _selectedTitle;
}
@property UILabel* customLabel;
@end
@implementation CustomButton
@synthesize customLabel=_customLabel;
- (instancetype)init;
{
self = [super init];
if (self) {
[self setBackgroundColor:[UIColor greenColor]];
_customLabel = [UILabel new];
[_customLabel setTextColor:[UIColor whiteColor]];
[_customLabel setTranslatesAutoresizingMaskIntoConstraints:NO];
[self addSubview:_customLabel];
[self addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"|[_customLabel]|" options:0 metrics:nil views:NSDictionaryOfVariableBindings(_customLabel)]];
[self addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|[_customLabel]|" options:0 metrics:nil views:NSDictionaryOfVariableBindings(_customLabel)]];
}
return self;
}
- (void)setTitle:(NSString *)title forState:(UIControlState)state;
{
if (state == UIControlStateNormal) {
_normalTitle = title;
} else if (state == UIControlStateSelected) {
_selectedTitle = title;
}
[self setSelected:[self isSelected]];
}
- (void)setSelected:(BOOL)selected;
{
[super setSelected:selected];
if (selected) {
[_customLabel setText:_selectedTitle];
} else {
[_customLabel setText:_normalTitle];
}
}
@end
http://stackoverflow.com/questions/4135032/ios-uibutton-resize-according-to-text-length – Alfa
Bereits gelesen, dass aber nicht viel hilft :( – Abhishek
Während der Zustand der Schaltfläche ändern - Taste Größe groß zu machen genug, dass String kann leicht in ihm kommen, aber bevor Sie bitte die Mitte des Knopfes in Variable speichern dann verwenden Sie Fit-to-Size-Methode und dann wieder die gleiche Mitte zum Button – Alfa