我需要在我的iPhone/iPad應用程序中顯示對話框(類似於照片,左下角按鈕,可打開帶有「電子郵件照片」,「彩信」,「指定給聯繫人」,「使用壁紙」等選項的對話框。 ...) - 可能嗎?如何調用這個視圖元素?iPhone/iPad問題如何顯示對話框+如何製作屏幕截圖?
第二個問題 - 有點相關。其中一個選項是「電子郵件當前屏幕」,它需要製作當前屏幕的屏幕截圖(顯然沒有這個對話框:-)並在電子郵件中打開以發送電子郵件。請建議我如何製作截圖?我強迫它附加到電子郵件?謝謝!
我需要在我的iPhone/iPad應用程序中顯示對話框(類似於照片,左下角按鈕,可打開帶有「電子郵件照片」,「彩信」,「指定給聯繫人」,「使用壁紙」等選項的對話框。 ...) - 可能嗎?如何調用這個視圖元素?iPhone/iPad問題如何顯示對話框+如何製作屏幕截圖?
第二個問題 - 有點相關。其中一個選項是「電子郵件當前屏幕」,它需要製作當前屏幕的屏幕截圖(顯然沒有這個對話框:-)並在電子郵件中打開以發送電子郵件。請建議我如何製作截圖?我強迫它附加到電子郵件?謝謝!
對於第一個問題:它被稱爲操作表,並由UIActionSheet
類表示。在iPhone上,您可以使用-showInView:
方法在視圖中顯示它;在iPad上,您可以使用-showFromBarButtonItem:animated:
方法從工具欄按鈕或-showFromRect:inView:animated:
的視圖中的任意矩形顯示它。請注意,由於這些是兩個獨立的代碼路徑,因此您需要使用UI_USER_INTERFACE_IDIOM()
宏(Google it)來確定您的代碼運行在哪種設備上。
這裏的答案,在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;
}
}