2016-04-06 17 views
0

numaralı telefonu ben bulan question buldum ve cevap mükemmel. Ama ya ben istersem, bedeni kendim mi ayarlarsın? Bunun için scrollView.contentOffset'u nasıl değiştirebilirim? Örnek için iOS - UIScrollView görünür alan boyutunda ekran görüntüsü al

böyle demek isterseniz:

#define multiplier 3.0f 

CGSize size = CGSizeMake(scrollView.frame.size.width*multiplier, scrollView.frame.size.height*multiplier); 
UIImage *backgroungImage = [self renderScrollViewToImageWith:scrollView size:size]; 

-(UIImage *)renderScrollViewToImageWith:(UIScrollView *)_scrollView size:(CGSize)size 
{ 
    UIScrollView *contentScrollView = _scrollView; 

    UIGraphicsBeginImageContextWithOptions(size, NO, [UIScreen mainScreen].scale); 

    //what do I do here??? 
    CGPoint offset = contentScrollView.contentOffset; 
    CGContextTranslateCTM(UIGraphicsGetCurrentContext(), -offset.x, -offset.y); <-- what do I do here? 

    [contentScrollView drawViewHierarchyInRect:CGRectMake(0, 0, size.width, size.height) afterScreenUpdates:YES]; 
    UIImage *visibleScrollViewImage = UIGraphicsGetImageFromCurrentImageContext(); 
    UIGraphicsEndImageContext(); 

    return visibleScrollViewImage; 
} 

cevap

0

bu

CGRect croppingRect = viewToTakeScreenShot.bounds; 

UIGraphicsBeginImageContextWithOptions(croppingRect.size, NO, [UIScreen mainScreen].scale); 
CGContextRef context = UIGraphicsGetCurrentContext(); 
if (context == NULL) return nil; 
CGContextTranslateCTM(context, -croppingRect.origin.x, -croppingRect.origin.y); 

[viewToTakeScreenShot layoutIfNeeded]; 
[viewToTakeScreenShot.layer renderInContext:context]; 

UIImage *screenshotImage = UIGraphicsGetImageFromCurrentImageContext(); 
UIGraphicsEndImageContext(); 

bu deneyin deneyin. Bu sizin için yardımcı olabilir.