2011-09-07 2 views
0

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

UIImage* img = [[UIImage imageNamed:@"screen_displayer_rounded.png"] stretchableImageWithLeftCapWidth:6 topCapHeight:6]; 
    CGRect rect = CGRectMake(272.0f, 14.0f, 100.0f, 30.0f); 
    UIImageView* imgView = [[UIImageView alloc] initWithFrame:rect]; 
    [imgView setImage:img]; 

Может ли кто-нибудь сказать мне, почему это может произойти?

Спасибо!

ответ

1

Я обнаружил, что вы не можете просто растянуть растяжкуImageWithLeftCapWidth, чтобы получить правильное изменение размера.

Обычно я использую свойство contentStretch, доступное для всех подклассов UIView, когда stretchableImageWithLeftCapWidth не работает для меня.

Оформить заказ документов UIView apple относительно свойства contentStretch.

+0

-1, потому что это просто неправильно. stretchableImageWithLeftCapWidth работает как обаяние во многих приложениях, которые я написал. – mvds

+0

Как это просто неправильно? Замечательно, что вы нашли успех с помощью stretchableImageWithLeftCapWidth, но он не работает для всех ситуаций. Я использовал contentStretch во многих случаях, когда stretchableImageWithLeftCapWidth просто не сокращал его. – Shaun

0

Просто проверка - возможно, вы просматриваете изображение не сетчатки на экране сетчатки? Это, безусловно, растягивает его.

+0

его размыто на обоих, а не только на одном :( –

+0

Если я просто добавлю изображение, не растянутые углы просто прекрасные и приятные хрустящие, но если я даже растягиваю его на 1px шире, чем обычно, все углы все еще правильный радиус, просто расплывчатый –

+0

Увидев, что вы поставили высоту на 14 пикселей, я полагаю, что у вас есть тот же 6-кратный округленный угол по вертикали. Не могли бы вы разместить изображение здесь? Джеймс? Ваш код выглядит так, как будто он должен работать. – Madhu

1

Вы должны проверить, не отображается ли представление в нецелочисленном положении. Если вы выберете «Run with performance tool> Core Animation» и отметьте «Цветные несогласованные изображения», все несогласованные изображения будут отображаться фиолетовыми.

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

+0

любые советы для этого на Xcode 4? –

+0

dunno, но он должен быть там. Это часть инструментов в XCode 3. – mvds

+0

не видел его, но я дважды проверял все, что у меня есть, никоим образом изображение не будет размещено наполовину на a px и половина на другом. Похоже, что xcode размывает фактические углы по какой-то причине –

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