Я бы хотел добавить тень к тексту, нарисованному с помощью метода категории NSString (UIStringDrawing)
, поставляемого iOS:
- (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.
Я искал решения, и они либо рекомендуют использование UILabel (которое я отклонил выше, поскольку у меня около дюжины различных текстовых элементов, скомпонованных нав представлении ячейки таблицы) или CGContextSetShadow()
.Последнее, кажется, всегда предлагается в контексте прямоугольных фигур и не обязательно для прикрепления тени к пути текста, нарисованного непосредственно с помощью метода NSString drawAtPoint...
, упомянутого выше.(Я попробовал, но это не сработало (т.е. ничего не изменилось); я новичок в рисовании Core Graphics).
Предложения?