2010-10-06 4 views
3

Я хотел бы создать UIButton, который использует растяжение изображения в качестве фонового изображения, например, что я могу легко изменить размер кнопки для различных этикеток и т.д.Эластичного изображение растяжения часть шире, чем 1px

Так что я создал следующий код, который работает отлично:

UIImage *bgImage = [[UIImage imageNamed:@"Button-Template.png"]stretchableImageWithLeftCapWidth:2 topCapHeight:2]; 
UIButton *loginButton = [UIButton buttonWithType:UIButtonTypeCustom]; 
loginButton.frame = CGRectMake(180, 280, 112, 40); 
[loginButton setBackgroundImage:bgImage forState:UIControlStateNormal]; 
// some more stuff 

Теперь вот загвоздка: iPhone SDK предполагает, что strechable часть изображения точно один пиксел в ширину, что не так в моем изображении, как я хочу, чтобы создать шаблон, который требует повторения каждые два пикселя (так что 2 пикселя являются одним паттерном). Я не нашел в документах информации о том, можно ли изменить значение ширины расширяемой части (в моем случае 2 вместо 1), кто-нибудь знает, как это сделать или как я мог бы достичь своей цели с помощью обходного пути? Написание растягивающей части на мой взгляд кажется немного задуманным прямо сейчас (хотя мне, возможно, придется вернуться к этому).

Спасибо!

ответ

0

Существует нет API для использования 2 пикселей в качестве ширины растяжки. Вам придется реализовать это поведение самостоятельно в пользовательском представлении или использовать изображение с определенной шириной.

+0

Хорошо спасибо! Будет быстрее, если я просто создам различные размеры в Photoshop, но если у меня будет немного свободного времени, я создам для этого пользовательский вид. – Robin

3

С прошивкой 5.0 на вы могли бы использовать resizableImageWithCapInsets:

Проверить UIImage Class Reference

Но этот метод работает только на IOS> = 5.0 устройств, так что может быть убавьте сейчас.

+1

Спасибо за головы, это пригодится в будущем! – Robin

Смежные вопросы