Как масштабировать только определенные части изображения в приложении для iPhone? - PullRequest
6 голосов
/ 30 января 2012

Я хочу масштабировать изображение в приложении для iPhone, но не полностью.Я просто хочу масштабировать определенные части, такие как нижняя часть или средняя часть ... Как мне это сделать?

Пожалуйста, помогите.

Спасибо

Ответы [ 2 ]

31 голосов
/ 30 января 2012

Звучит так, будто вы хотите выполнить форму 9-фрагментного или 3-фрагментного масштабирования.Допустим, у вас есть следующее изображение:

Original

, и вы хотите, чтобы оно выглядело так:

Scaled

(диагональные концы не растягиваются вообще, верхняя и нижняя части растягиваются по горизонтали, а левая и правая части растягиваются по вертикали)

Для этого используйте -stretchableImageWithLeftCapWidth:topCapHeight: в iOS 4.x и более ранних версиях или -resizableImageWithCapInsets: начиная с iOS 5.

UIImage *myImage = [UIImage imageNamed:@"FancyButton"];
UIImage *myResizableImage = [myImage resizableImageWithCapInsets:UIEdgeInsetsMake(21.0, 13.0, 21.0, 13.0)];
[anImageView setImage:myResizableImage]

Чтобы помочь визуализировать масштабирование, вот изображение, показывающее вышеуказанные вставки:

Insets

1 голос
/ 30 января 2012

Я не знаю ни одного способа отрегулировать масштаб только части UIImage. Я бы подошел немного по-другому, создав отдельные изображения из вашего основного изображения, используя CGImageCreateWithImageInRect , а затем масштабировав отдельные изображения с различными требуемыми скоростями.

См:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...