2014-03-25 67 views
1

嗨,我想隱瞞我的UIViewUIImage在特定的幀大小親切地幫助我。如何將UIView作爲UIImage在特定幀中捕獲?

  1. 我有水平滾動的UIScrollView '「,其被添加作爲子視圖UITableView`',我的表視圖幀大小爲(0,0,12000,768)。

  2. 我想在滾動後將當前可見的我的UITableView轉換爲UIImage

實施例:

如果我滾動我的表視圖水平一段距離意味着當前可見的是(150,0,1200,768)這意味着完整的設備屏幕。

  1. 如果我使用以下代碼:

    UIGraphicsBeginImageContext(self.frame.size); 
    [self.layer renderInContext:UIGraphicsGetCurrentContext()]; 
    UIImage *backgroundImage = UIGraphicsGetImageFromCurrentImageContext(); 
    

    其捕獲始終的(0,0,1200,768)的幀大小隻。

那麼,我該如何設置圖像捕捉的起源。

請幫我....預先感謝....

+0

代碼中的哪一點是您實現圖像上下文? – ZeMoon

+0

嘗試使用self.window.layer,而不是self.layer – ZeMoon

+0

我有表視圖哪個大小是(12000,768),我適合水平滾動的uiscroll視圖,現在當我捏我的表視圖,我想捕獲當前可見區域作爲圖像。例如:我滾動我的表格視圖水平意味着當前可見幀是(200,0,device.screen.width,device.screen.height)。這個區域只有我必須捕捉爲圖像。我怎麼能這樣做#akashg – nagarajan

回答

0
CGRect rect = [self.view bounds]; 

UIGraphicsBeginImageContext(rect.size); 
CGContextRef context = UIGraphicsGetCurrentContext(); 
[self.view.layer renderInContext:context]; 
UIImage *img = UIGraphicsGetImageFromCurrentImageContext(); 
UIGraphicsEndImageContext(); 
-1

試試這個。

UIView *viewprint=[[UIView alloc] initWithFrame:CGRectMake(0, 0, width, height)]; 
viewprint.backgroundColor=[UIColor whiteColor]; 
tableView.frame = CGRectMake(0, 0, width, height); 
[viewprint addSubview:tableView]; 

UIGraphicsBeginImageContext(viewprint.size); 
CGContextRef context = UIGraphicsGetCurrentContext(); 
[view.layer renderInContext:context]; 
UIImage *img = UIGraphicsGetImageFromCurrentImageContext(); 
UIGraphicsEndImageContext(); 
+0

[view.layer renderInContext:context];在這個視圖是正確的viewprint,什麼是tableview,materialAndLaburListTableView #madhuri – nagarajan

+0

感謝您指點@nagarajan – Madhuri

+0

你可以在這裏發佈更新的代碼@Madhuri – nagarajan

2
- (UIImage *)rasterizedImageInView:(UIView *)view atRect:(CGRect)rect { 
    UIGraphicsBeginImageContextWithOptions(rect.size, view.opaque, 0.0); 
    CGContextRef context = UIGraphicsGetCurrentContext(); 
    CGContextTranslateCTM(context, -rect.origin.x, -rect.origin.y); 
    [view.layer renderInContext:context]; 

    UIImage *image = UIGraphicsGetImageFromCurrentImageContext(); 
    UIGraphicsEndImageContext(); 
    return image; 
} 

這將允許你從一個特定的區域捕獲UIImage一個UIView內由CGRect定義。