如何捕获当前视图屏幕截图并在代码中重用? (iPhone SDK)

2024-01-31

当用户旋转设备时,我试图从一个 UIView 转换到另一个 UIView。这本身并不困难。但是,由于我在旋转后显示完全不同的内容,因此 UIKit 提供的默认动画(旋转当前显示的视图)在概念上是不合适的。

简单地禁用动画并突然交换视图是可以忍受的,但远远低于我在应用程序的其余部分中构建的完善程度。我想做的是:

当调用 shouldAutorotateToInterfaceOrientation: 时,我想获取旋转之前的用户视图的不透明视图快照(如果愿意的话)。然后,在旋转完成并且系统应用了视图变换等之后,我可以显示我保存的快照视图,并将我选择的动画转换到新视图。完成后,我可以发布快照并继续。

有没有一种方法可以做到这一点并且不昂贵?

我能想到的唯一的其他选择是在除默认方向之外的所有方向上返回 NO,然后通过应用我自己的动画和变换来做出反应。然而,我更喜欢使用系统来执行此操作,因为我觉得自己执行此操作可能会导致手动旋转视图中的“未定义”键盘行为等。

想法?


- (UIImage *)captureView:(UIView *)view {
    CGRect screenRect = [[UIScreen mainScreen] bounds];

    UIGraphicsBeginImageContext(screenRect.size);

    CGContextRef ctx = UIGraphicsGetCurrentContext();
    [[UIColor blackColor] set];
    CGContextFillRect(ctx, screenRect);

    [view.layer renderInContext:ctx];

    UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();

    UIGraphicsEndImageContext();

    return newImage;
}

在这里找到这个:

http://discussions.apple.com/thread.jspa?messageID=8358740 http://discussions.apple.com/thread.jspa?messageID=8358740

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何捕获当前视图屏幕截图并在代码中重用? (iPhone SDK) 的相关文章

  • 日期时间到 NSDate

    如何转换字符串2010 11 19T20 00 00Z进入一个NSDate object 我尝试过使用 dateFormatter setDateFormat yyyy MM ddTHH mm ssZ 但看起来我的自定义格式样式错误 PS
  • Grand Central Dispatch (GCD) 调度源标志

    我最近不再使用 to GCD 调度来源 https developer apple com documentation dispatch 1385630 dispatch source create监视文件更改 效果很好 API 也变得更加
  • 如何订阅设备方向(非界面方向)事件?

    在我的应用程序中 我想在设备旋转 方向更改 的情况下调用 CCScene myscene 中的某些方法 我禁用了自动旋转 因为我希望它不会发生 问题是 我想根据我的设备方向改变场景中的重力 我的代码 void onEnter super o
  • 如何检测 UITableView 中某个单元格的双击?

    如何检测某个单元格上的双击UITableView i e 如果用户进行了一次触摸 我想执行一个操作 如果用户进行了两次触摸 我想执行另一个操作 我还需要知道进行触摸的索引路径 我怎样才能实现这个目标 Thanks 如果您不想创建子类UITa
  • 刷新单元格的 UITableView 队列

    我想知道如果调用 UITableView reloadData 时 UITableView 队列被刷新 是否有人可以回复我 我正在尝试这样做 但这对我没有帮助 有什么建议吗 如果你查看 UITableView 的头文件 你可以看到有一个名为
  • 带有自定义字体的 UILabel 错误呈现

    在我的 iPhone 应用程序中 我为所有 UILabel 设置了自定义字体 更准确地说 我对 UILabel 进行了子类化 重写了一个方法 在该方法中设置了自定义字体 然后将 IB 中的所有标签设置为该自定义类 现在的问题是 所有文本都渲
  • Xcode 4.2 UITableview 自定义单元格

    我对故事板上的自定义单元格有疑问 我需要从调用的方法访问标签 UITableViewCell tableView UITableView tableView cellForRowAtIndexPath NSIndexPath indexPa
  • 如何打开/关闭 iPhone 相机闪光灯 swift 2?

    我正在寻找如何打开 关闭 iPhone 的相机闪光灯 我发现了这个 IBAction func didTouchFlashButton sender AnyObject let avDevice AVCaptureDevice defaul
  • iOS:GMail API - 通过电子邮件发送附件

    我能够成功发送没有附件的电子邮件 但是 当我尝试使用 GTLUploadParamaters 上传附件时 出现 501 错误 我尝试添加照片库中附件的 NSData 以及仅发送图像的 URL 在这两种情况下我都得到了同样的错误 Create
  • iPhone触摸形状或原始数据

    有人知道是否可以检测触摸形状吗 也许通过获取原始触摸屏数据 我在这里找到了这个问题 答案 如何获取原始触摸屏数据 https stackoverflow com questions 789737 iphone raw touchscreen
  • 关闭子级后,父级 UIViewController 方向不应更改

    假设我有三个 UI 控制器 A B C A 是我的根控制器 在 ShouldAutoRotate 方法中我返回 YES 我从A到B呈现ModalView B gt 在ShouldAutoRotate方法中我返回Portrait 然后从B我向
  • 如何对 iPad 应用程序进行类转储?

    我正在尝试运行 iPad 应用程序的类转储来探索其架构 我使用 The Unarchiver 提取了 ipa 文件 并从 Payload 文件夹中对 app 文件运行了 class dump 但是 我收到此错误 Generated by c
  • 如何同时关闭并弹出到视图控制器

    我的家庭视图控制器是Tabbarcontroller 从选项卡栏我导航到 A Viewcontroller TabarViewcontroller gt A 视图控制器 从A 视图控制器 我推 B 视图控制器 从B Viewcontroll
  • 如何使用 xcode 3.1.3 处理 iAd

    目前我正在集成 iAds 并制作该应用程序的精简版 我的问题是以前我使用的 iAds 是 xcode 4 1 3 但目前我使用的是 xcode 3 1 3 iAds 不支持我们所做的 请帮助我 NSString contentSize UI
  • 如何在 Monotouch 中对 UIImageView 进行运动模糊效果?

    在 MonoTouch 中进行实时运动模糊的方法是什么 当滚动惯性图片库时 我需要在 UIImageView 上应用运动模糊效果 以强度和方向作为参数 就像在 Photoshop 中一样 我在 CocoaTouch 或 CoreAnimat
  • iOS 上每个选项的带有图像的操作表

    有没有办法在 iOS 上将图像添加到操作表中 与苹果在应用程序商店或苹果音乐应用程序上所做的一样 我对苹果文档的基本搜索表明我没有在操作表中子类化或添加子视图 UIActionSheet 并非设计为子类化 也不应向其层次结构添加视图 苹果文
  • iOS Swift 检测键盘事件

    我能以某种方式检测来自 iOS 键盘的事件吗 我想检测此类事件UIViewController哪个没有UITextField或任何此类物体 我只有四个圆圈UIView我想在按下键盘上的按钮时将它们涂成不同的颜色 您没有任何对象可以从键盘获取
  • 如何等待 webViewDidFinishLoad 完成

    我有一个初始化 webView 的布尔条件 并在 webViewDidFinishLoad 中加载另一个委托 以便在完成完成后触发 但是 由于布尔值在条件 webViewDidFinishLoad 之前返回 因此页面永远不会完全加载 如何确
  • 使用 Objective-C 在 iPhone 应用程序中显示或隐藏 UIButton

    我在用UITextView编辑文本 我想用两个UIButtons编辑并保存 最初我想显示编辑UIButton 当用户单击编辑时我想显示保存UIButton 当内容成功保存后 我不想再显示保存按钮 我是一名 C 编码员 在 C 中我曾经这样做
  • iPhone SDK - 在后台线程中运行重复进程

    我有一个iPhone我想在其中每隔一段时间在后台执行一个方法的应用程序1第二 所以在我的主线程中 我有以下代码UIViewController viewDidLoad NSTimer timerWithTimeInterval 1 0 ta

随机推荐