Ответ 1
Код работает, но, возможно, не так, как вы этого хотите. Свойство adjustsFontSizeToFitWidth
только уменьшает размер шрифта, если текст не подходит (вплоть до minimumFontSize
). Он никогда не увеличит размер шрифта. В этом случае 16-сантиметровое "привет" легко впишется в кнопку шириной 180 пикселей, так что изменение размера не произойдет. Если вы хотите, чтобы шрифт увеличивался в соответствии с доступным пространством, вы должны увеличить его до большого количества, чтобы он был уменьшен до максимального размера, который подходит.
Просто для того, чтобы показать, как он работает в настоящий момент, вот хороший надуманный пример (нажмите на кнопку, чтобы уменьшить ее ширину, чтобы уменьшить шрифт до minimumFontSize
):
- (void)viewDidLoad {
[super viewDidLoad];
UIButton *myButton = [UIButton buttonWithType: UIButtonTypeRoundedRect];
[myButton setTitle:[NSString stringWithFormat:@"hello"] forState:UIControlStateNormal];
[myButton setFrame: CGRectMake(10, 10, 300, 120)];
[myButton.titleLabel setFont: [UIFont boldSystemFontOfSize:100.0]];
myButton.titleLabel.adjustsFontSizeToFitWidth = YES;
myButton.titleLabel.minimumFontSize = 40;
[myButton addTarget:self action:@selector(buttonTap:) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:myButton];
}
- (void)buttonTap:(UIButton *)button {
button.frame = CGRectInset(button.frame, 10, 0);
}