iPhone: Как расширить повторяемый UIImage? - PullRequest
4 голосов
/ 28 июля 2011

У меня есть изображение, которое я использую для создания твита.Он состоит из двух закругленных рядов, со значком твиттера вверху слева.Важной частью является то, что это повторяется, так как вы можете скопировать любую часть средней части по вертикали, и это будет то же самое, только дольше.Вот изображение, которое я создал:

Tweet Frame

Мой вопрос заключается в том, каким образом в коде я расширяю (или уменьшаю) то, что зависит от количества строк в моем UITextView?Примерно так, чтобы получить размер:

float requiredHeight = lines * 14;

Я знаю, что это возможно, потому что Apple делает это с помощью своего приложения SMS:)


ОБНОВЛЕНИЕ: Вот полный код для этого:

UIImage *loadImage = [UIImage imageNamed:@"TwitPost.png"];
float w2 = loadImage.size.width/2;
float h2 = loadImage.size.height/2;
// I have now reduced the image size so the height must be offset a little (otherwise it stretches the bird!):
loadImage = [loadImage stretchableImageWithLeftCapWidth:w2 topCapHeight:h2+15];
imageView.image = loadImage;

Спасибо за оба ответа.

Ответы [ 2 ]

6 голосов
/ 28 июля 2011

Используя

- (UIImage *)stretchableImageWithLeftCapWidth:(NSInteger)leftCapWidth topCapHeight:(NSInteger)topCapHeight

Где вы установили leftCapWidth и topCapHeight как половину ширины и высоты вашего изображения.Это изображение вы можете растянуть в UIImageView, изменив его границы / рамки.

4 голосов
/ 28 июля 2011

Посмотрите документацию для UIImage. В частности:

- (UIImage *)stretchableImageWithLeftCapWidth:(NSInteger)leftCapWidth topCapHeight:(NSInteger)topCapHeight

Это позволяет вам использовать изображение, которое повторяет часть в leftCapWidth или topCapHeight, чтобы растянуть его по горизонтали или вертикали.

...