teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

回答を修正、追記しました。

2018/03/07 21:55

投稿

newmt
newmt

スコア1277

answer CHANGED
@@ -3,8 +3,9 @@
3
3
  ```Swift
4
4
  func getScreenShot(windowFrame: CGRect) -> UIImage {
5
5
 
6
- let rect = self.view.bounds
6
+ /* let rect = self.view.bounds */ <-この行は不要でしたすいません
7
+   // ↓変更
7
- UIGraphicsBeginImageContextWithOptions(rect.size, false, 0.0)
8
+ UIGraphicsBeginImageContextWithOptions(windowFrame.size, false, 0.0)
8
9
  let context: CGContext = UIGraphicsGetCurrentContext()!
9
10
  self.view.layer.render(in: context)
10
11
  let capturedImage : UIImage = UIGraphicsGetImageFromCurrentImageContext()!
@@ -12,4 +13,21 @@
12
13
 
13
14
  return capturedImage
14
15
  }
15
- ```
16
+ ```
17
+
18
+ 【追記】
19
+ 以下の方法でカメラロールに保存できます。
20
+
21
+ ```
22
+ let image = getScreenShot(windowFrame: self.view.bounds)
23
+ UIImageWriteToSavedPhotosAlbum(image, nil, nil, nil)
24
+ ```
25
+
26
+ また、もうされているかもしれませんが、info.plistに以下に2つの項目の設定が必要になります。
27
+
28
+ ・NSCameraUsageDescription
29
+  Privacy – Camera Usage Description
30
+ ・NSPhotoLibraryAddUsageDescription
31
+  Privacy – Photo Library Additions Usage Description
32
+
33
+ ![イメージ説明](7fba4d20ac9c104f306eddd9bf2bf585.png)