客户希望我做点什么,我刚检查过,我很确定它不可能。 他要求在按钮(UIButton)上放置一个文本。 (默认状态配置) 当用户点击它时,文字应该放大。 (Highligted State Configuration) 我通过选择Highligted State Configuration进行检查,然后在Interface Builder中更改了文本的大小,但我没有工作。默认状态配置的文本也已更改。如果有办法,请告诉我。
谢谢!
泰穆尔
答案 0 :(得分:10)
您可能无法在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];
}
答案 1 :(得分:7)
btn.titleLabel.adjustsFontSizeToFitWidth = TRUE;
所以它会根据按钮宽度自动调整文本大小......
答案 2 :(得分:1)
这实际上并不难做到。您需要在类中创建两个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。
这会给你一个从中心调整大小的按钮,而不仅仅是调整大小。
现在,代码并不是完美的。这只是你在这里所做的一般概念。我认为通过将这些代码重用到一个函数并传入您希望文本的大小,这对于某些代码重用来说是一个很好的选择。我只是觉得自己不喜欢这样做;)