2013-06-29 4 views
0

Я хочу изменить размер изображения с помощью метода resizableImageWithCapInsets. Но это не растягивание. Я также не знаю реального фонда UIEdgeInsetsMake. Может ли кто-нибудь сказать мне, как это работает. Я использую этот код:Сделать streachable изображение с помощью resizableImageWithCapInsets

UIImage *mars = [UIImage imageNamed:@"button.png" ]; 
    UIImage* marsTiled = [mars resizableImageWithCapInsets: 
          UIEdgeInsetsMake(mars.size.height/4.0, 
              mars.size.width/4.0, 
              mars.size.height/4.0, 
              mars.size.width/4.0) 
               resizingMode: UIImageResizingModeStretch]; 

    [containerView addSubview:marsTiled]; 

Здесь вид контейнер UIView.

image to resize И, похоже, после реализации enter image description here

Пожалуйста, помогите.

ответ

0

попробовать это:

UIImage *rawEntryBackground = [UIImage imageNamed:@"MessageEntryInputField.png"]; 
UIImage *entryBackground = [rawEntryBackground stretchableImageWithLeftCapWidth:13 topCapHeight:22]; 
UIImageView *entryImageView = [[[UIImageView alloc] initWithImage:entryBackground] autorelease]; 
entryImageView.frame = CGRectMake(5, 0, 248, 40); 
entryImageView.autoresizingMask = UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth; 
0

UIEdgeInsets позволяет указать область, которая не будет натянута, и для этого остаться как есть. В вашем случае вы, вероятно, захотите, чтобы изображение было растянуто в середине круга, и поэтому необходимо указать вставки из границ вашего изображения в середину круга с помощью UIEdgeInsetsMake(), указав значения для top, left, bottom, right. Я бы рекомендовал использовать такой инструмент, как Photoshop или Preview, и функцию выбора выделения для определения вставки. Также вы хотите добавить UIImageView в свой контейнерный вид вместо изображения напрямую.

enter image description here

[image resizableImageWithCapInsets:UIEdgeInsetsMake(20.f, 12.f, 19.f, 19.f)]