iOS: sizeWithFont: для пользовательского шрифта

Я отключился, и мне нужно использовать sizeWithFont: метод для правильной компоновки моего макета, но он не работает с пользовательскими шрифтами. Есть ли способ заставить его работать, или, может быть, другой метод, который я могу использовать?

Я довольно озадачен этим. Любая помощь приветствуется.

2 ответа

Решение

sizeWithFont определенно должен работать, но если он создает проблему, то есть обходной путь. Вы можете поместить текст в UITextView, добавить его в свой макет, а затем получить фактический размер текста и настроить его соответствующим образом. Вот пример кода из одного из моих проектов:

     // Put in the title in
    self.titleView = [[UITextView alloc] initWithFrame:CGRectMake(0, 0, 195, 195)];
    self.titleView.font = [UIFont fontWithName:@"Bliss Pro" size:20.0];
    [self addSubview:self.titleView];

    self.titleView.text = @"Add your text here";

    // Now get the actual size of the text and resize the title view's frame
    CGRect frame = self.titleView.frame;
    frame.size.height = self.titleView.contentSize.height;
    self.titleView.frame = frame;

Это немного хакерски, но это, безусловно, работает.

#define kFontSize 14.0    //modify your font size
CGSize size = [yourView sizeWithFont:[UIFont boldSystemFontOfSize:kFontSize]];
Другие вопросы по тегам