2012-09-10 40 views
3

我試圖截取可擴展的uitableview截圖,我試圖截取uitableview的截圖,但我無法做到這一點,然後我將tableview框架大小改爲tableview內容大小。截圖後,我將幀大小更改爲舊的幀大小。現在問題是我在表格視圖中有可擴展的部分。我能夠在屏幕截圖中截取未展開的表格視圖單元格的屏幕截圖。我需要截取未展開的表格視圖單元格內容。任何一個請建議任何想法.. 謝謝如何以可編程方式獲取可擴展的uitableview的截圖

回答

1

通過使用這一類文件u能採取截屏什麼的屏幕纔可見....

@interface UIImage (MyImage) 


    + (UIImage*)imageFromView:(UIView*)view; 
    + (UIImage*)imageFromView:(UIView*)view scaledToSize:(CGSize)newSize; 
    + (UIImage*)imageWithImage:(UIImage*)image scaledToSize:(CGSize)newSize; 
    + (void)beginImageContextWithSize:(CGSize)size; 
    + (UIImage *)croppedImage:(UIImage *)myImage :(CGRect)bounds; 
    @end 

#import "UIImage+MyImage.h" 

@implementation UIImage (MyImage) 

+ (void)beginImageContextWithSize:(CGSize)size 
{ 
    if ([[UIScreen mainScreen] respondsToSelector:@selector(scale)]) { 
     if ([[UIScreen mainScreen] scale] == 2.0) { 
      UIGraphicsBeginImageContextWithOptions(size, YES, 2.0); 
     } else { 
      UIGraphicsBeginImageContext(size); 
     } 
    } else { 
     UIGraphicsBeginImageContext(size); 
    } 
} 

+ (void)endImageContext 
{ 
    UIGraphicsEndImageContext(); 
} 

+ (UIImage*)imageFromView:(UIView*)view 
{ 
    [self beginImageContextWithSize:[view bounds].size]; 
    BOOL hidden = [view isHidden]; 
    [view setHidden:NO]; 
    [[view layer] renderInContext:UIGraphicsGetCurrentContext()]; 
    UIImage *image = UIGraphicsGetImageFromCurrentImageContext(); 
    [self endImageContext]; 
    [view setHidden:hidden]; 
    return image; 
} 

+ (UIImage*)imageFromView:(UIView*)view scaledToSize:(CGSize)newSize 
{ 
    UIImage *image = [self imageFromView:view]; 
    if ([view bounds].size.width != newSize.width || 
     [view bounds].size.height != newSize.height) { 
     image = [self imageWithImage:image scaledToSize:newSize]; 
    } 
    return image; 
} 

+ (UIImage*)imageWithImage:(UIImage*)image scaledToSize:(CGSize)newSize 
{ 
    [self beginImageContextWithSize:newSize]; 
    [image drawInRect:CGRectMake(0,0,newSize.width,newSize.height)]; 
    UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext(); 
    [self endImageContext]; 
    return newImage; 
} 


+ (UIImage *)croppedImage:(UIImage *)myImage :(CGRect)bounds { 
    CGImageRef imageRef = CGImageCreateWithImageInRect(myImage.CGImage, bounds); 
    UIImage *croppedImage = [UIImage imageWithCGImage:imageRef]; 
    CGImageRelease(imageRef); 
    CGSize asd = croppedImage.size; 
    return croppedImage; 
} 

@end 

調用該方法會.. ..

yourImageView.image= [UIImage imageFromView:(UIView*)yourTableViewInstance ] 

試試這個....

+0

,也是我累了不同的方式來解決這個問題。在拍攝屏幕截圖時,我展開了表格視圖中的所有部分。我使用表格視圖的內容大小來拍攝屏幕截圖。它對我來說很好.. – Thala

+0

不錯,謝謝.... – Spynet

相關問題