2014-03-22 2 views
7

Можно ли установить пути исключения на UILabel? В документации на Apple указано, что UILabel теперь построена на TextKit, но UILabel, похоже, не демонстрирует свойство textContainer.Пути исключения на TextContainer UILabel

Я ищу для реализации ячейки tableview, которая включает в себя несколько меток и значок roux, которые метки не должны перекрываться (показано ниже).

enter image description here

Если это не представляется возможным с UILabel, как я могу сделать TextView действовать как UILabel (без прокрутки, выбора и т.д.) и размер его в соответствии с его содержимое?

ответ

7

Правильно, что UILabel не раскрывает стек TextKit, поэтому вы не можете установить путь исключения.

Однако, вы на самом деле не need UILabel; его легко нарисовать непосредственно с TextKit в контексте прямоугольной графики, и теперь вы можете установить путь исключения (потому что вы рисуете с помощью TextKit). Чтобы рисовать с помощью TextKit, просто создайте текстовый набор «стоп», настроив его любым способом, а затем, когда пришло время рисовать, позвоните в менеджер макета drawBackgroundForGlyphRange:... и drawGlyphsForGlyphRange:....

+0

Вот пример, где я рисую непосредственно в графическом контексте (в подклассе UIView 'drawRect:' с TextKit: https://github.com/mattneub/Programming-iOS-Book-Examples/blob/master/bk2ch10p543drawingWithTextKit/ ch23p815attributedStringDrawing3/StyledText.m – matt

+0

Если бы я пошел по этому маршруту, мне нужно было бы вычислить высоту ячейки вручную в HeightForRow? В настоящее время я использую systemLayoutSizeFittingSize: UILayoutFittingCompressedSize похож на этот http://blog.jldagon.me/blog/2013/12/ 07/auto-layout-and-uitableview-cells/ – bencallis

+0

Да, менеджер компоновки также говорит вам о высоте. Он делает все! – matt

Смежные вопросы