Создайте границу вокруг UIImageView, используя 8 изображений


У меня есть 8 изображений, которые я сделал, 4 изображения для каждого из углов и 4 изображения для каждой из сторон UIImageView. Теперь, как мне заставить их "обойти" view, чтобы они образовали красивую, растягивающуюся границу, что-то вроде этого (белая линия-это граница, которую я пытаюсь реализовать): Введите описание изображения здесь

Есть идеи о том, как реализовать границу view на основе 8 предустановленных изображений?

Редактировать: я не хочу рисовать границу, я хочу использовать мои 8 изображений!

1 3

1 ответ:

Это не совсем то, о чем вы просите, но это решение ближе всего к тому, что вы пытаетесь сделать.

Вы должны взять ваши 8 изображений и объединить их в одно изображение, а затем сделать изображение с возможностью изменения размера из этого, используя resizableImageWithCapInsets:resizingMode:.

Первые аргументы позволяют указать верхнюю, левую, нижнюю и правую вставки (то есть размеры ваших изображений).

Введите описание изображения здесь

Второй аргумент определяет, будут ли области растянуты или выложены плиткой.

Растянутый
Растянутая граница

Черепица
Плиточный бордюр

Таким образом, чтобы использовать его, вы сделали бы что-то подобное

UIImage *myFullImage = [UIImage imageNamed:@"nameOfTheCombinedImage"];
UIImage *resizableImage = 
[myFullImage resizableImageWithCapInsets:UIEdgeInsetsMake(top, left, bottom, right)resizingMode:UIImageResizingModeTile];

(растянутые против плиток изображения "заимствованы" из здесь)