0

当我截屏时,如何删除按钮?我正在使用此代码进行屏幕截图

CGImageRef originalImage = UIGetScreenImage();
CGImageRef videoImage = CGImageCreateWithImageInRect(originalImage, CGRectMake(0, 66, 320, 230));            
UIImage *snapShotImage = [UIImage imageWithCGImage:videoImage];
UIImageWriteToSavedPhotosAlbum(snapShotImage, nil, nil, nil);
CGImageRelease(originalImage);                
CGImageRelease(videoImage);  

在此处输入图像描述

4

4 回答 4

1

在拍摄屏幕截图之前删除您的按钮,您可以将其框架存储在 CGRect 并在UIGraphicsEndImageContext() 之后再次添加它;线

 CGRect rect = yourButton.frame; // store your buttons frame
[yourButton removeFromSuperView];
UIGraphicsBeginImageContext(self.view.frame.size);
[self.view.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *viewImage=UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

yourButton = [UIButton buttonWithType:UIButtonTypeCustom];

[yourButton setFrame:rect];
[yourButton setImage:[UIImage imageNamed:@"yourButtonImage.png"] forState:UIControlStateNormal];
[yourButton addTarget:self action:@selector(yourButtonAction:) forControlEvents:UIControlEventTouchUpInside];
[self.view yourButton];
于 2012-06-30T12:07:02.487 回答
0

如果按钮图像包含在其他图像中,这可能会变得非常复杂(那么我建议您进入全屏并截取屏幕截图)。

如果按钮图像不直接包含在另一个图像中(例如,只是一个 HTML 覆盖),那么您也可以使用 css 轻松隐藏它。

但也许有比在 iOS 中截屏更好的方法……</p>

于 2012-06-30T09:57:36.743 回答
0

嗨,您可以制作像 backView 这样的视图,然后单击按钮调用此代码....

-(IBAction)screenShotBtnPress :(id)sender  
{

    UIGraphicsBeginImageContext(self.view.window.frame.size);
    [BackView.layer renderInContext:UIGraphicsGetCurrentContext()];

    UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    UIImageWriteToSavedPhotosAlbum(viewImage, nil, nil, nil);
}  

此代码获取 BackView 的屏幕截图,为此视图制作 IBOutlet,然后连接此....

于 2012-06-30T10:19:03.797 回答
-2

在截屏之前隐藏该按钮。

于 2012-06-30T09:54:55.237 回答