У меня есть UITextView, который должен иметь одну строку текста.iphone - вопрос о UITextView и его размере
Размер шрифта контролируется слайдером. Когда пользователь управляет слайдером, я вычисляю новый размер UITextView, используя (это метод, называемый слайдером при его перемещении).
- (void) changeFontSize:(id)sender {
UISlider *slider = (UISlider *)sender;
CGFloat newSize = (CGFloat)[slider value];
myTextView.font = [UIFont boldSystemFontOfSize:newSize];
[self adjustBoxforSize:myTextView.text];
}
- (void) adjustBoxForSize:(NSString*)myText {
CGFloat fontSize = myTextView.font.pointSize;
CGSize newSize =
[myText sizeWithFont:[UIFont boldSystemFontOfSize:fontSize]];
newSize.width = newSize.width * 1.5; // make it 50% larger
newSize.height = newSize.height * 1.5; // make it 50% taller
CGRect myFrame = CGRectMake(0.0f, 0.0f, newSize.width, newSize.height);
myTextView.frame = myFrame;
}
Если я уменьшить шрифт, это результат
Вопрос заключается в том: как текст будет из TextView, если я его масштабирования, чтобы соответствовать и действительно делает его 50% больше?
Я что-то упустил? Кажется, что sizeWithFont неправильно вычисляет размер.
Спасибо.
извините за это. Это была опечатка, когда я скопировал код из моего приложения сюда (я должен был упростить его и ошибался). Я исправил вопрос. – SpaceDog
Попробуйте следующее: newSize.width = newSize.width + 20; Кажется, paddings не растут с размером шрифта. – MaxFish
это, кажется, решает одну проблему. Выполнение этого в процентах не очень хорошо, потому что у вас будет небольшое увеличение, когда шрифт будет небольшим, но выполнение его с использованием фиксированной суммы сделает трюк. Повторите свой комментарий в качестве ответа, поэтому я могу принять его. благодаря! – SpaceDog