【问题标题】:iPhone/iPad question how to show dialog + how to make screenshot of screen?iPhone / iPad问题如何显示对话框+如何制作屏幕截图?
【发布时间】:2011-06-11 10:08:00
【问题描述】:
我需要在我的 iPhone/iPad 应用程序中显示对话框(有点像在照片中,左下方按钮打开对话框,其中包含“电子邮件照片”、“彩信”、“分配给联系人”、“使用壁纸”等选项,等等......) - 有可能吗?这个视图元素是怎么调用的?
第二个问题 - 有点相关。其中一个选项是“电子邮件当前屏幕”,它需要制作当前屏幕的屏幕截图(显然没有此对话框:-)并在电子邮件中打开以发送电子邮件。请建议我如何制作屏幕截图?我强制它附加到电子邮件?谢谢!
【问题讨论】:
标签:
iphone
ipad
ios
dialog
screenshot
【解决方案1】:
对于您的第一个问题:它称为操作表,由 UIActionSheet 类表示。在 iPhone 上,您可以使用 -showInView: 方法在视图中显示它;在 iPad 上,您可以使用 -showFromBarButtonItem:animated: 方法从工具栏按钮显示它,或者使用 -showFromRect:inView:animated: 从视图中的任意矩形显示它。请注意,由于这是两个独立的代码路径,因此您需要使用 UI_USER_INTERFACE_IDIOM() 宏(Google 搜索)来确定您的代码在哪种类型的设备上运行。
【解决方案3】:
这是答案,在 MonoTouch (.NET) 中:
public class ScreenShot
{
public static UIImage TakeScreenShot (UIView view)
{
RectangleF canvasRect = view.Bounds;
UIGraphics.BeginImageContext (canvasRect.Size);
CGContext ctx = UIGraphics.GetCurrentContext ();
ctx.FillRect (canvasRect);
view.Layer.RenderInContext (ctx);
UIImage newImage = UIGraphics.GetImageFromCurrentImageContext ();
UIGraphics.EndImageContext ();
return newImage;
}
}