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

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

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

Показать сообщение отдельно
rovnyart
1 / 1 / 1
Регистрация: 20.08.2014
Сообщений: 19
30.11.2014, 12:13  [ТС]     Пляски вокруг UILabel (как нормально настроить перенос текста?)
таак, уже почти добился, чего хотел, но почему-то не работает в портретной ориентации (в ландшафтной все ок). может, подскажете, чего я не замечаю?

Label на вьюхе один (pickupLabel), привязки - equal widths и equal heigths с view.

переделанная функция под Swift:
Кликните здесь для просмотра всего текста
Objective-C
1
2
3
4
5
6
7
8
9
10
11
12
13
    func getSizeForText(text: NSString, maxWidth: CGFloat, fontName: String, fontSize:CGFloat) -> CGSize {
        var constraintSize: CGSize = CGSizeZero
        
        constraintSize.height = CGFloat.max
        constraintSize.width = maxWidth
        let attributesDictionary: NSDictionary = NSDictionary(objectsAndKeys: UIFont(name: fontName, size: fontSize)!, NSFontAttributeName)
        
        let frame: CGRect = text.boundingRectWithSize(constraintSize, options: NSStringDrawingOptions.UsesLineFragmentOrigin, attributes: attributesDictionary, context: nil)
        
        let stringSize:CGSize = frame.size
        return stringSize
        
    }


viewDidLoad:
textFromInput - это строка со словами
Кликните здесь для просмотра всего текста
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
27
28
29
30
override func viewDidLoad() {
        super.viewDidLoad()
 
    
 
let words = textFromInput.componentsSeparatedByString(" ")
 
let longest = words.reduce(String?()) {
    (longest, word) in
    longest == nil || countElements(word) > countElements(longest!) ? word : longest
   
}
 
    var maxs: CGSize = CGSizeZero
    var fontSize: CGFloat = 10
    do {
    fontSize++
    maxs = self.getSizeForText(longest!, maxWidth: CGFloat.max, fontName: "Helvetica", fontSize: fontSize)
    } while maxs.width < pickupLabel.frame.size.width
    
    
    pickupLabel.text = textFromInput
    pickupLabel.font = UIFont(name: "Helvetica", size: fontSize)
    pickupLabel.numberOfLines = 0
    
    println("Самое длинное слово: \(longest!)")
    println("Искомый максимальный размер шрифта: \(Int(fontSize))")
    println("Ширина рамки Label: \(pickupLabel.frame.size.width)")
    println("Ширина рамки View: \(self.view.frame.size.width)")
}

И что получается:

в портретной:
Кликните здесь для просмотра всего текста
Пляски вокруг UILabel (как нормально настроить перенос текста?)


в ландшафтной:
Кликните здесь для просмотра всего текста
Пляски вокруг UILabel (как нормально настроить перенос текста?)


пробовал сравнивать maxs с self.view.frame.size.width - но почему-то тоже ничего не получается(
 
Текущее время: 09:44. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru