Форум программистов, компьютерный форум CyberForum.ru

Пляски вокруг UILabel (как нормально настроить перенос текста?) - Программирование iOS

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование iOS Отображение карт гугл в отдельной view http://www.cyberforum.ru/ios-dev/thread1288367.html
Добрый день. Собственно проблема заключается в том, что неверно определяются (либо я неверно макет сделал) размеры области, в которой отрисовывается карта. На скриншоте оранжевым окрашен родительский элемент, в который выводится карта. При верстке макета для Android я просто указал ширину блоков равной 100%, и при отрисовке карта заполняла собой весь родительский контейнер, а вот логику...
Программирование iOS Использование встроенных словарей Как можно брать информацию из словарей, установленных на iphone? http://www.cyberforum.ru/ios-dev/thread1287607.html
Программирование iOS Как сделать чтоб UIView двигался вверх, когда клавиатура присутствует
пробувал, не получаеться(
Программирование iOS Действие при закрытии приложения
Как написать функцию, выполняющуюся при закрытии приложения? не при нажатии кнопки home, а именно при полном закрытии
Программирование iOS Трансляция видео с камеры на пк http://www.cyberforum.ru/ios-dev/thread1284868.html
Здравствуйте! Стоит задача: трансляция видео с камеры айфона на пк по wifi и дальнейшая обработка. Ну т.е. чтобы айфон использовался как вебка. Подскажите пожалуйста в какую сторону копать(в мобильной разработке совсем новичок).
Программирование iOS Прижать UIView к низу Подскажите как в коде прижать UIView к низу родительской вьюшки? подробнее

Показать сообщение отдельно
noname_club
102 / 90 / 9
Регистрация: 01.05.2013
Сообщений: 583
03.11.2014, 19:50     Пляски вокруг UILabel (как нормально настроить перенос текста?)
Я пытался разбить строку, передаваемую в Label на слова и вычислить самое длинное, потом вычислить его длину и т.д.
можно вычислить самое длинное слово, и потом через цикл подобрать нужный размер (программно, до отрисовки UILabel)

Objective-C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
/*! Returns the size of the label to display the text provided
    @param text
        The string to be displayed
    @param width
        The width required for displaying the string
    @param fontName
        The font name for the label
    @param fontSize
        The font size for the label
 */
- (CGSize)getSizeForText:(NSString *)text maxWidth:(CGFloat)width font:(NSString *)fontName fontSize:(float)fontSize {
    CGSize constraintSize;
    constraintSize.height = MAXFLOAT;
    constraintSize.width = width;
    NSDictionary *attributesDictionary = [NSDictionary dictionaryWithObjectsAndKeys:
                                          [UIFont fontWithName:fontName size:fontSize], NSFontAttributeName,
                                          nil];
 
    CGRect frame = [text boundingRectWithSize:constraintSize
                                      options:NSStringDrawingUsesLineFragmentOrigin
                                   attributes:attributesDictionary
                                      context:nil];
 
    CGSize stringSize = frame.size;
    return stringSize;
}
Objective-C
1
2
3
4
5
6
7
8
9
CGSize maxs = CGSizeZero;
NSString * maxText = @"BIGHELLOWORLDBIG";
CGFloat fontSize = 10;
do {
    fontSize += 1;
    maxs = [self getSizeForText: maxText maxWidth: MAXFLOAT font:@"Helvetica" fontSize:fontSize];
} while (maxs.width>self.label.frame.size.width);
 
NSLog(@"Искомый максимальный размер шрифта рассчитан : %d", (int) fontSize);
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru