5

Xamarin.iOS でスクリーンショットを撮り、この画像を UIImage に保存するにはどうすればよいですか。

Obj-C の例をいくつか見てきましたが、C# はありません

4

4 に答える 4

0

このコードはスクリーンショットを撮り、写真をカメラロールに保存します。

 UIGraphics.BeginImageContext(UIScreen.MainScreen.Bounds.Size);
        try
        {
            var mainLayer = UIApplication.SharedApplication.KeyWindow.Subviews[0].Layer;
            mainLayer.RenderInContext(UIGraphics.GetCurrentContext());
            var img = UIGraphics.GetImageFromCurrentImageContext();
            img.SaveToPhotosAlbum((iRef, status) =>
            {
                if (status != null)
                {
                    new UIAlertView("Problem", status.ToString(), null, "OK", null).Show();
                }
                else
                {
                    new UIAlertView("Saved", "Saved", null, "OK", null).Show();
                }
            });
        }
        finally
        {
            UIGraphics.EndImageContext();
        }

ただし、アプリがクラッシュしなかったことを確認するには、ユーザーに画像をカメラ ロールに保存する許可を求める必要があります。これを info.plist に追加します

<key>NSPhotoLibraryAddUsageDescription</key>
<string>This app requires read and write permission from the user.</string>

if you're adding it from the generic editor then "Privacy - Photo Library Additions Usage Description" will be the given option you will find out instead of "NSPhotoLibraryAddUsageDescription".
于 2019-05-18T07:07:37.810 に答える