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]];