捕获时间删除工具栏

时间:2012-01-27 11:46:52

标签: iphone ios xcode xcode4

-(IBAction)printDisplay:(id)sender{

     CGRect rect = CGRectMake(0.0,44.0,self.view.frame.size.width,self.view.frame.size.height);

    NSValue *rectObj = [NSValue valueWithCGRect:rect];



    CGRect rectRestored = [rectObj CGRectValue];



    UIGraphicsBeginImageContext(CGSizeMake(rectRestored.size.width, rectRestored.size.height-44));

    [self.view.layer renderInContext:UIGraphicsGetCurrentContext()];

    viewImage = UIGraphicsGetImageFromCurrentImageContext();

    UIGraphicsEndImageContext();

    UIImageWriteToSavedPhotosAlbum(viewImage, nil, nil, nil);

}

这是从当前屏幕捕获图像的代码。

问题是我不想让UIToolBar捕获到屏幕上以便做什么。我的应用程序截图如下所示:

enter image description here

在我截取图片截图后:

enter image description here

简而言之,我希望在图像捕捉时删除UIToolBar。 提前花费你的宝贵时间。

@samuel

3 个答案:

答案 0 :(得分:0)

在不同视图中保留您的图像和额外内容(包含您想要捕获的内容)并使用该视图进行捕获。

在你的代码中,我们可以说第二个视图命名为secondView所以代码将是:

-(IBAction)printDisplay:(id)sender{

     CGRect rect = CGRectMake(0.0,44.0,self.secondView.frame.size.width,self.secondView.frame.size.height);
     NSValue *rectObj = [NSValue valueWithCGRect:rect];
     CGRect rectRestored = [rectObj CGRectValue];

     UIGraphicsBeginImageContext(CGSizeMake(rectRestored.size.width, rectRestored.size.height-44));
     [self.secondView.layer renderInContext:UIGraphicsGetCurrentContext()];
     viewImage = UIGraphicsGetImageFromCurrentImageContext();
     UIGraphicsEndImageContext();
     UIImageWriteToSavedPhotosAlbum(viewImage, nil, nil, nil);

}

答案 1 :(得分:0)

如果图像框从工具栏下方开始,则可以从(0,44)开始设置矩形。如果图像框从工具栏下方(0.0)开始,则在通过graphicsContext截取屏幕截图之前设置toolbarObject.hidden = YES;,然后将其重置为toolbarObject.hidden = NO;

答案 2 :(得分:0)

修改代码以便行

[self.view.layer renderInContext:UIGraphicsGetCurrentContext()];

[imageView.layer renderInContext:UIGraphicsGetCurrentContext()];