2012-06-13 3 views
1

Со ссылкой на: iPhone stretchableImageWithLeftCapWidth only makes "D"sРастягиваемые Изображения

У меня есть изображение кнопки размером 13x30. Я хочу растянуть изображение, чтобы заполнить кнопку, которая будет иметь размер 45x30.

Вот код, я использую:

UIImage *shareImage = [[UIImage imageNamed:@"btn_red"] stretchableImageWithLeftCapWidth:16.0f topCapHeight:0.0]; 
UIButton *shareButton = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 46.0f, 30.0f)]; 
etc.... 

Изображение я получаю довольно прочь. Я получаю изображение в реальном размере, с чем-то вроде более светлой тени за ним, как показано на рисунке button.

Почему это происходит? Я совсем не понимаю. У меня правильная растягивающая логика, и я следил за тем, что все говорят в учебниках/сообщениях.

Если я получу определенную помощь, я очень благодарен.

ответ

0

Я думаю, что ваша левая ширина крышки неправильная? Если ваше первое изображение шириной всего 13 пикселей, как левая крышка может быть 16?

Левая крышка ширина на исходном изображении, которая остается Unstretched

+0

Хорошо, я изменил его на 13. Все тот же вопрос. Рамка моей кнопки установлена ​​до 46 x 30, как и раньше. – darksky

+0

Почему был принят ответ от пользователя @ user1447414? Мы понятия не имели, где вы хотите сократить свой имидж. Он просто предлагает центр и неправильно (это должно быть 6 слева, скопируйте центральный пиксель, 6 справа). Пожалуйста, прочитайте документы Apple об этом. –

+0

Пол, я принял его, потому что он сработал. Я много читал о документах Apple. Это был вздор. Мое изображение шириной 13 пикселей. Я хочу растянуть его до 46 в ширину. Я все еще ** не знаю, почему 6 было правильным. Для этого мне нужно растянуть левую сторону на 16 пикселей, а правую - на 16 пикселей. 16,5 + 16,5 + 13 = 46! Так как, черт возьми, вы протягиваете левую сторону на «6», и это работает? Если вы ответите на это, я дам вам правильный ответ. – darksky

0

Чтобы следить за ответом Павла,

Вы хотите, чтобы убедиться, что вы оставить пространство для растяжки, так что увеличить при помощи Photoshop или что-то подобное, и решить, какие левые пиксели абсолютно необходимы.

Смотреть это: http://idevrecipes.com/2010/12/08/stretchable-images-and-buttons/

+0

Я видел это. Что Павел рекомендовал, и он все еще не работает. На самом деле, это все та же самая точная проблема. – darksky

+0

Не изменяйте его до 13, как вы сказали выше ^, это должно быть 0

0

LeftCapWidth должно быть 6,5;

UIImage *shareImage = [[UIImage imageNamed:@"btn_red"] stretchableImageWithLeftCapWidth:6.5 topCapHeight:0.0]; 
UIButton *shareButton = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 46.0f, 30.0f)]; 
+0

Wow. Почему это? – darksky