2011-12-14 2 views
1

Я hava UIButton. И для моей кнопки я хочу установить изображение с вертикальным градиентом. enter image description hereiPhone: растянуть изображение градиента

Кнопка может изменить ее ширину и высоту, поэтому мне нужно сделать изображение растяжимым. Я нашел метод, подобный:

UIImage* myGradientImage = [UIImage imageNamed:@"gradientImage.png"]; 
UIImage* stretchImage = [myGradientImage 
    stretchableImageWithLeftCapWidth:20 topCapHeight:20]; 

Когда ширина кнопки растет, он растягивается нормально. Но если высота растет, то градиент выглядит не очень хорошо. enter image description here

Есть ли возможность установить снизуCapHeight и topCapHeight вместе? Или сказать, что изображение не касается центра изображения?

+0

Какими функциями вы используете, чтобы установить UIButton изображения: setImage: Форстат: или setBackgroundImage: Форстат: – Niko

+0

setBackgroundImage – Jim

ответ

2

Если вы

UIImage* stretchImage = [myGradientImage stretchableImageWithLeftCapWidth:20 
                  topCapHeight:0]; 

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

Если ваши закругленные углы находятся на изображении, это сделает их некруглыми. Чтобы обойти это, поставить ваш градиент изображение без закругленных углов, затем сделать

button.layer.cornerRadius = 4; 
+0

Бог, я слепой ... Я думал, что topCapHeight: 0 ничего не сделает ... Спасибо .. – Jim

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