Как сделать масштаб шрифта - PullRequest
2 голосов
/ 24 апреля 2011

Я делаю универсальное приложение для iPhone и iPad. Я знаю, что есть возможность определить, что текст должен масштабироваться вниз до выбранного размера точки, когда он слишком велик, однако мне нужно, чтобы текст масштабировался вверх, когда текст отображается на iPad. Это возможно? У меня есть этикетка размером 18 очков. Это почти занимает всю ширину на iPhone с учетом длины текста. Но на iPad этого не произойдет из-за увеличенного размера экрана ...

Спасибо за ваше время.

Ответы [ 2 ]

2 голосов
/ 24 января 2012

У меня была такая же проблема на универсальном приложении.

Я установил параметры автоматического изменения размера для масштабирования всех компонентов непосредственно в Интерфейсном Разработчике, но он не масштабировал размер шрифта, чтобы занять новое заданное пространство экрана.

В итоге я обновил viewDidLoad каждого представления с приведенным ниже кодом, в основном перебирая компонент представления и удваивая pointSize для всех надписей (можно также использовать для кнопок):

if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
    for (UIView *component in self.view.subviews) {
        if ([component isKindOfClass:[UILabel class]]) {
            UILabel *labelToUpdate = (UILabel *) component;
            [labeltoUpdate setFont:[labelToUpdate.font fontWithSize:labelToUpdate.font.pointSize*2]];
        }
    }

Приложение действительно хорошо масштабируется с iPhoneна iPad сейчас.

1 голос
/ 25 апреля 2011

Вы можете зациклить метод:

- (CGSize)sizeWithFont:(UIFont *)font constrainedToSize:(CGSize)size lineBreakMode:(UILineBreakMode)lineBreakMode

, пока не получите совпадение, занимающее две строки, а затем используйте предыдущий размер шрифта.Кажется, быстрее / проще просто использовать идиомы для определения определенного размера для iPad.

...