UIButton图像调整大小/缩放以适应

时间:2012-04-20 12:45:28

标签: objective-c ios xcode ios5 xcode4

我有一个非常有线的问题,我不知道如何解决它。我正在设置UIButtons框架的动画,当我为它设置动画时,我希望按钮中的图像缩放到与按钮相同的大小。它可以在我的iPhone模拟器上无需任何操作。但是当我在iPad模拟器上运行它时,它不会改变图像大小。我在几个地方添加了[[gissaImg1 imageView] setContentMode:UIViewContentModeScaleToFill]代码,但它没有帮助。

有谁知道出了什么问题以及如何解决这个问题?

//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;
.......

2 个答案:

答案 0 :(得分:24)

尝试使用setBackgroundImage代替setImage,并对图片不执行任何操作。 (resize或setContentMode) 希望这有帮助

答案 1 :(得分: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);

我认为这对某人有帮助。 :)