当我截取屏幕截图时,如何删除按钮?

时间:2012-06-30 09:50:32

标签: iphone

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

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);  

enter image description here

4 个答案:

答案 0 :(得分: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];

答案 1 :(得分:0)

如果按钮图像包含在另一个图像中,这可能会变得非常复杂(然后我会建议您输入全屏并截取屏幕截图)。

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

但也许有更好的方法比在iOS上制作截图...

答案 2 :(得分: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的screenShot,为此视图制作IBOutlet,然后将其连接....

答案 3 :(得分:-2)

在截图之前隐藏该按钮。