Внутренняя тень в UILabel - PullRequest
2 голосов
/ 09 августа 2011

Какой самый простой способ нарисовать внутреннюю тень в UILabel без использования изображений?

Я знаю, что вы можете использовать shadowColor и shadowOffset для теней, но я не видел таких свойств для внутренних теней.

Ответы [ 3 ]

4 голосов
/ 11 апреля 2012

Проверьте FXLabel. Я недавно использовал его, и он прекрасно работает.

https://github.com/nicklockwood/FXLabel

1 голос
/ 09 августа 2011

Я не верю, что есть какой-то простой способ сделать это появление.Вам нужно будет использовать изображение или пользовательский вид, который рисует тень.

Я бы использовал ваш любимый редактор изображений, чтобы сделать изображение внутренней тени с прозрачностью (или цветом, если вам это нужно)и загрузите его в растягиваемый UIImage.Например, вот внутреннее теневое изображение (17px x 17px): inner shadow

Вы можете загрузить его следующим образом:

UIImage* innerShadow = [ [ UIImage imageNamed: "innershadow.png" ] 
        stretchableImageWithLeftCapWidth: 8 topCapHeight: 8 ];
UIImageView* innerShadowView = [ [ [ UIImageView alloc ] initWithImage: innerShadow ] 
        autorelease ];
myLabel.backgroundColor = [ UIColor clearColor ];

Затем поместите innerShadowView за меткой.Вы можете также сгенерировать изображение программным способом, если хотите избежать использования ресурса изображения.

** Обновление на основе комментариев следует **

Ах, исходя из вашего последнего комментария, эффект, который вы ищетеfor полностью отличается от изображения в предыдущем комментарии.

В этом случае вам придется создать подкласс UILabel и создать собственный рисунок, чтобы скомбинировать искомый эффект.Посмотрите этот ответ о том, как объединить эффект внутренней тени.

0 голосов
/ 09 августа 2011

Что вы подразумеваете под любыми такими свойствами для внутренних теней.shadowOffset - это опция для установки теней (вертикальная или горизонтальная тень) UILabel.

Я не знаю, но этот ответ может быть длинным для реализации.

...