I ' Я бы хотел добавить тень к тексту, нарисованному с использованием поставляемого iOS метода категории NSString (UIStringDrawing)
:
- (CGSize)drawAtPoint:(CGPoint)point forWidth:(CGFloat)width
withFont:(UIFont *)font minFontSize:(CGFloat)minFontSize
actualFontSize:(CGFloat *)actualFontSize
lineBreakMode:(UILineBreakMode)lineBreakMode
baselineAdjustment:(UIBaselineAdjustment)baselineAdjustment;
Ясно, что опции тени нет.
Да, здесь можно использовать UILabel и задать свойства отбрасываемой тени, но это будет не так эффективно, поскольку любой подкласс UIView (например, UILabel) оборачивает объект CALayer и будет тяжелее (с точки зрения производительности
Вот контекст:
Я делаю пользовательский рисунок для подкласса UITableViewCell, реализуя drawRect:
в представлении ячейки таблицы вместо создания ячейки таблицы из файла Nib составного UIView подклассы.
Составление группы подклассов UIView лишило бы смысла попытки сохранить эту компактность и оставаться в пределах 50-60 кадров в секунду при прокрутке табличного представления.
Я дважды пытался нарисовать струну с небольшим смещением. Это может оказаться приемлемым, если я настрою цвет тени на цвет фона ячейки, которая у меня есть, но это кажется довольно беспорядочным. Конечно, нет свойства размытия тени, как в случае с UILabel.
Я искал решения, и они либо рекомендовали использование UILabel (что я отклонил, как указано выше, поскольку у меня есть около дюжины отдельных текстовых элементов, которые накладываются на таблицу) вид ячейки) или CGContextSetShadow ()
. Последнее всегда предлагается в контексте прямоугольных форм и не обязательно для добавления тени к пути текста, нарисованного непосредственно с помощью NSString drawAtPoint ...
упомянутый выше метод. (Я пробовал, но вроде не работает (т.е. ничего не изменилось); Я ' m новый для чертежа Core Graphics).
Предложения?