客戶希望我做某件事,我剛剛檢查過,我確信它不可能。 他要求在Button(UIButton)上放置文本。 (默認狀態配置) 而當用戶點擊它時,文本應該放大。 (Highligted狀態配置) 我已通過選擇Highligted狀態配置進行檢查,然後更改了Interface Builder中的文本大小,但我沒有工作。文本也更改爲默認狀態配置。請告訴我是否有任何方法可以做到這一點。更改UIButton上文本的大小
謝謝!
泰穆爾
客戶希望我做某件事,我剛剛檢查過,我確信它不可能。 他要求在Button(UIButton)上放置文本。 (默認狀態配置) 而當用戶點擊它時,文本應該放大。 (Highligted狀態配置) 我已通過選擇Highligted狀態配置進行檢查,然後更改了Interface Builder中的文本大小,但我沒有工作。文本也更改爲默認狀態配置。請告訴我是否有任何方法可以做到這一點。更改UIButton上文本的大小
謝謝!
泰穆爾
您可能無法做到這一點在IB,但你一定有一對動作做到這一點。我假設突出顯示的狀態只會在按下按鈕時激活。如果不是這種情況,您可以修改此代碼(當突出顯示的狀態結束時將狀態切換回正常狀態)。
- (IBAction)buttonDown:(id)sender {
UIButton *button = (UIButton *)sender;
button.titleLabel.font = [UIFont boldSystemFontOfSize:18.0];
}
- (IBAction)buttonUp:(id)sender {
UIButton *button = (UIButton *)sender;
button.titleLabel.font = [UIFont boldSystemFontOfSize:15.0];
}
這其實並不難。你需要在你的課堂上創建兩個IBAction,onTouchDown和onTouchUp。也爲您的按鈕創建一個IBOutlet。然後,進入Interface Builder並將按鈕連接到IBOutlet,並將「Touch Down」到「onTouchDown」的動作以及「Touch Up Inside」和「Touch Up Outside」動作連接到「onTouchUp」。
onTouchDown是您設置突出顯示字體的位置。 onTouchUp是您重置按鈕的地方。
你的頭文件最終會看起來像這樣:
@interface TestViewController : UIViewController {
UIButton *testButton;
}
@property (nonatomic, retain) IBOutlet UIButton *testButton;
- (IBAction)onTouchDown;
- (IBAction)onTouchUp;
現在,這裏的「onTouchDown」功能裏面就是你要做到:
1)存儲的當前尺寸按鈕
2)改變字體大小
3)給按鈕自動調整大小(這是關鍵)
4)中心基於舊的大小按鈕
你應該有最終看起來像這樣的功能:
- (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);
}
注意,字體大小爲36
在你的觸摸功能,它會看起來像這樣:
- (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);
}
字體大小應該是無論你的默認字體是。在這種情況下,我做了15個。
這應該讓你有一個從中心調整大小而不是調整大小的按鈕。
現在,代碼並不是完美的。這只是你在這裏做什麼的一般想法。我認爲,通過將這些代碼組合到一個函數中並傳遞您希望文本的大小,這對於某些代碼重用來說非常有用。我只是不喜歡做我自己;)
Thnx @Wonderflonium – 2010-05-30 09:27:19
答案已被接受,非常感謝! – 2010-06-01 12:11:18
btn.titleLabel.adjustsFontSizeToFitWidth = TRUE;
所以它調整文本大小,按自動按鍵寬度......
日Thnx @warrenm 我們的代碼更加簡單和容易:) – 2010-05-30 09:28:00
'NSString * fontName = button.titleLabel.font.fontName; button.titleLabel.font = [UIFont fontWithName:fontName size:19.0f];' 這將保留當前的Font。 – Michiel 2011-04-18 08:59:08