2011-05-16 49 views
1

我有由多個上一個UIView子層形成的圖像,然後將其採用的屏幕截圖爲這樣:我如何獲得它來縮放我的UIimage到不同的大小?

UIGraphicsBeginImageContext(object.bounds.size); 
     [object.layer renderInContext:UIGraphicsGetCurrentContext()]; 
     UIImage *screenShot = UIGraphicsGetImageFromCurrentImageContext(); 
     UIGraphicsEndImageContext(); 

然後它把它放到一個按鈕:

[objectButton setImage:screenShot forState:UIControlStateNormal]; 

但圖像以它自己的尺寸顯示,所以如果按鈕與圖像尺寸不一樣,那麼我有一個問題,它不會使圖像變大或變小。

我怎樣才能得到它的圖像大小更改爲按鈕的大小?

回答

2

嘗試這一類 -

.h文件中 -

@interface UIImage (UIImageAdditions) 
- (UIImage*)scaleToSize:(CGSize)size; 
@end 

.m文件 -

@implementation UIImage (UIImageAdditions) 

- (UIImage*)scaleToSize:(CGSize)size { 
    UIGraphicsBeginImageContext(size); 

    CGContextRef context = UIGraphicsGetCurrentContext(); 
    CGContextTranslateCTM(context, 0.0, size.height); 
    CGContextScaleCTM(context, 1.0, -1.0); 

    CGContextDrawImage(context, CGRectMake(0.0f, 0.0f, size.width, size.height), self.CGImage); 

    UIImage* scaledImage = UIGraphicsGetImageFromCurrentImageContext(); 

    UIGraphicsEndImageContext(); 

    return scaledImage; 
} 

@end 

你可以這樣調用 -

[imageObject scaleToSize:CGSizeMake(weight, height)]; 

希望它能幫助!

0

您可以更改UIButton上的contentMode以適合縮放。這將調整圖像的大小,使其不大於按鈕的邊界。還要將圖像設置爲按鈕的背景圖像而不是圖像。

objectButton.contentMode = UIViewContentModeScaleAspectFit; 
[objectButton setBackgroundImage:image forStage:UIControlStateNormal]; 
+0

感謝您的幫助,但仍然顯示與以前相同。 – Andrew 2011-05-16 01:49:02

0

嘗試這樣,

[objectButton setBackgroundImage:screenShot forState:UIControlStateNormal]; 
相關問題