2012-04-20 4 views
2

У меня действительно проблема с проводкой, и я не знаю, как ее решить. Я анимация кадра UIButtons, и когда я его оживляю, я хочу, чтобы изображение в кнопке масштабировалось до того же размера, что и кнопка. Он работает без каких-либо действий на моем симуляторе iPhone. Но когда я запускаю его на симуляторе iPad, он не изменит размер изображения. Я добавил [[gissaImg1 imageView] setContentMode: UIViewContentModeScaleToFill] код в нескольких местах, но это не помогло.UIButton image resize/scale to fit

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

//Code to set the image 
UIImage *image = [UIImage imageNamed:[NSString stringWithFormat:@"%@_small", 
               [[itemsForRound objectAtIndex:[[guessItems objectAtIndex:0] intValue]] valueForKey:@"Name"]]]; 

[self.gissaImg1 setImage:image forState:UIControlStateNormal]; 
[self.gissaImg1 setImage:image forState:UIControlStateHighlighted]; 

//Code to animate button 
CGRect animateToSpot = (isIphone) ? CGRectMake(0, 0, 480, 320) : CGRectMake(0, 0, 1024, 768); 
    [self performSelector:@selector(PlayCorrectSound:) withObject:nil afterDelay:1]; 
    [[gissaImg1 imageView] setContentMode:UIViewContentModeScaleToFill]; 
    [UIView animateWithDuration:1.5 delay:0 options:(UIViewAnimationOptionAllowUserInteraction | UIViewAnimationCurveLinear) animations:^{ 
     switch (index) { 
      case 0: 
       [[gissaImg1 imageView] setContentMode:UIViewContentModeScaleToFill]; 
       [self.gissaImg1 setFrame:animateToSpot]; 
       [self.view bringSubviewToFront:gissaImg1]; 
       break; 
....... 

ответ

24

Попробуйте setBackgroundImage вместо setImage, и ничего не делать для изображения. (Размер или setContentMode) Надеюсь, что это помогает

+0

Да, это помогло, теперь это работает. Спасибо – Uffe

+0

это работает ... спасибо чувак – eurica

0
UIImage *thubNailImage=[UIImage imageNamed:@"thumImage"]; 
[button.imageView setContentMode:UIViewContentModeScaleAspectFill]; 
CGSize imageSize=thubNailImage.size; 
[button setImage:thubNailImage forState:UIControlStateNormal]; 
button.titleEdgeInsets = UIEdgeInsetsMake(0, -imageSize.width, 0, 0); 

Если вы не хотите, чтобы показать название, а затем удалить последнюю строку (button.titleEdgeInsets = UIEdgeInsetsMake(0, -imageSize.width, 0, 0);)

Я думаю, что это помощь для кого-то. :)