UIView создать внутреннюю тень - PullRequest
0 голосов
/ 20 марта 2012

Я бы хотел получить UIView вот так:

Screenshot

Но я не знаю, как лучше всего это сделать?

Это лучший способ: https://stackoverflow.com/a/9214570/1228634?

Ответы [ 2 ]

3 голосов
/ 20 марта 2012

Создайте тень как прозрачный слой с определенным размером, а также создайте растягиваемое изображение, например:

UIImage *shadowImage = [UIImage imageNamed:@"shadow.png"];
shadowImage = [shadowImage stretchableImageWithLeftCapWidth:floorf(shadowImage.size.width/2) topCapHeight:floorf(shadowImage.size.height/2)];

Поместите изображение в UIImageView с contentMode в масштабе, чтобы соответствовать.

Назовите ваш взгляд как "sView". Вы можете добавить тень следующим образом:

UIImageView *shadowImgView = [[UIImageView alloc] initWithImage:shadowImage];
shadowImgView.contentMode = UIViewContentModeScaleToFill;
shadowImgView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
shadowImgView.frame = sView.bounds;
[sView shadowImgView];
[shadowImgView release]; // only needed if you aren't using ARC
0 голосов
/ 20 марта 2012

Вы можете попробовать использовать несколько картинок (как это работает для html), но я не думаю, что это лучше, чем ваш пример:

  • вам нужно 4 маленьких картинки, чтобы сделать текстуру дляверхняя, левая, правая и нижняя граница
  • вам нужно 4 изображения для углов вашего вида;
  • рисуйте, чтобы создать границу из первых 4 изображений, используя повторяющиеся;
  • рисуйте угловые изображения.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...