Ich habe eine Methode, die eine benutzerdefinierte UIButton erstellt, die mir erlaubt, die Farbe der Schaltfläche mit QuartzCore ändern. Aber die Tasten heben nicht hervor, wenn sie berührt werden.Benutzerdefinierte UIButton nicht markiert, wenn berührt
- (UIButton *)makeHeaderButton {
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
UIFont *textFont = [UIFont boldSystemFontOfSize:12];
UIColor *textColor = [UIColor colorWithRed:80/255.0 green:109/255.0 blue:145/255.0 alpha:1.0];
UIColor *backgroundColor = [UIColor colorWithRed:250/255.0 green:250/255.0 blue:250/255.0 alpha:1.0];
[button setTitleColor:textColor forState:UIControlStateNormal];
button.titleLabel.font = textFont;
button.autoresizesSubviews = YES;
button.layer.cornerRadius = 8;
button.layer.borderWidth = 1;
// next 2 properties set using QuartzCore class, no other way to set button colors
button.layer.borderColor = [UIColor grayColor].CGColor;
button.layer.backgroundColor = backgroundColor.CGColor;
button.clipsToBounds = YES;
return button;
}
Wie kann ich diese Tasten markieren wie eine normale Runde Rect-Taste?
Das ist nur das zu machen scheint Titelausblendung und -einblendung. Ich möchte, dass der Hintergrund der Schaltfläche blau blinkt, wenn die Schaltfläche berührt wird. – Bob
@Bob Sie könnten immer eine manuelle Hervorhebung einrichten. Zum Beispiel: Registrieren Sie sich für ein Ereignis 'onTouchDown' (oder was auch immer es ist) und dann in der Implementierung etwas wie 'button.layer.backgroundColor = [UIColor BlueColor];' Dann 'onTouchUp' ändern Sie die Farbe zurück zu Ihrer Einstellung – Garrett
Wow Das wird kompliziert. Alles, was ich tun möchte, ist eine RoundRect-Schaltfläche mit einer benutzerdefinierten Hintergrundfarbe. Sicherlich gibt es einen einfacheren Weg, dies zu tun. – Bob