To naprawdę nie jest trudne. Musisz utworzyć dwie IBActions w swojej klasie, onTouchDown i onTouchUp. Utwórz również IBOutlet dla swojego przycisku. Następnie przejdź do Interface Builder i podłącz przycisk do IBOutlet i podłącz akcję "Touch Down" do "onTouchDown", a czynności do "Touch Up Inside" i "Touch Up Outside" do "onTouchUp".
onTouchDown to miejsce, w którym ustawisz podświetloną czcionkę. onTouchUp to miejsce, w którym zresetujesz swój przycisk.
Plik nagłówka skończy się szuka czegoś takiego:
@interface TestViewController : UIViewController {
UIButton *testButton;
}
@property (nonatomic, retain) IBOutlet UIButton *testButton;
- (IBAction)onTouchDown;
- (IBAction)onTouchUp;
Teraz wewnątrz funkcji „onTouchDown” Oto, co masz zamiar zrobić:
1) zachować obecne wymiary przycisk
2) Zmień rozmiar czcionki
3) Powiedz przycisk auto-resize (to jest klucz)
4) Centrum przycisk na podstawie starego rozmiaru
powinien mieć funkcję, która kończy się szuka czegoś takiego:
- (IBAction)onTouchDown:(id)sender
{
CGRect oldBtnRect = testButton.frame;
testButton.titleLabel.font = [UIFont systemFontOfSize:36];
[testButton sizeToFit];
testButton.frame = CGRectMake(testButton.frame.origin.x - ((testButton.frame.size.width - oldBtnRect.size.width)/2), testButton.frame.origin.y - ((testButton.frame.size.height - oldBtnRect.size.height)/2), testButton.frame.size.width, testButton.frame.size.height);
}
Uwaga, rozmiar czcionki 36.
W to będzie wyglądać mniej więcej tak:
- (IBAction)onTouchUp:(id)sender
{
CGRect oldBtnRect = testButton.frame;
testButton.titleLabel.font = [UIFont systemFontOfSize:15];
[testButton sizeToFit];
testButton.frame = CGRectMake(testButton.frame.origin.x - ((testButton.frame.size.width - oldBtnRect.size.width)/2), testButton.frame.origin.y - ((testButton.frame.size.height - oldBtnRect.size.height)/2), testButton.frame.size.width, testButton.frame.size.height);
}
Rozmiar czcionki powinien być zgodny z domyślną czcionką . W tym przypadku zrobiłem to 15.
To powinno Ci przycisk, który zmienia rozmiar z centrum, a nie tylko zmiana rozmiaru.
Kod nie jest idealny. To tylko ogólna idea tego, co tu robisz. Myślę, że jest to świetny kandydat do ponownego użycia kodu, łącząc je w jedną funkcję i określając, jaki rozmiar ma być tekst.Po prostu nie czuję się jak robi to sam;)
Thnx @warrenm ur kod jest znacznie bardziej proste i łatwe :) –
'NSString * fontName = button.titleLabel.font.fontName; button.titleLabel.font = [UIFont fontWithName: fontName size: 19,0f]; ' Zachowuje bieżącą czcionkę. – Michiel