2017-01-28 5 views
1

장치의 사진 라이브러리에 내보기 (빨간색보기)를 저장하려고했지만 저장 후 흰색으로 표시됩니다.내 UIView가 흰색 사각형으로 그려지는 이유는 무엇입니까?

func saveViewToImage() 
{ 
    redView.backgroundColor = UIColor.red 
    let rect = CGRect(origin: CGPoint.zero, size: redView.frame.size) 

    UIGraphicsBeginImageContextWithOptions(rect.size, false, UIScreen.main.scale) 

    redView.draw(rect) 
    let resultImage = UIGraphicsGetImageFromCurrentImageContext() 

    UIGraphicsEndImageContext() 

    UIImageWriteToSavedPhotosAlbum(resultImage!, nil, nil, nil) 
} 

왜?

+0

이가되어 좋은 질문. 제목이 "왜 내 UIView가 흰색 사각형으로 그려지 는가?"와 같은 제목으로 변경하면 다른 사람들이 같은 문제를 겪을 수 있다고 생각합니다. 사진 앨범에 저장하는 것과 아무런 관련이 없으므로 – par

+0

좋은 지적. 고맙습니다. 화제의 이름이 –

답변

1

UIViewdraw(_ rect:) 메서드는 기본적으로 아무 것도 수행하지 않습니다. 거기에 서브 클래스 UIView을 배치하고 자신 만의 그림을 그릴 수 있습니다.

컨텍스트에보기를 그리려면 특별히 만들어진 기능 중 하나를 사용해야합니다. 귀하의 경우에는

당신에게 redView.draw(rect)을 변경할 수 있습니다 :

redView.drawHierarchy(in: rect, afterScreenUpdates: true)

같은 뷰의 레이어 사용이 하나 너무 사용할 수있는 다른 방법이 있습니다

guard let context = UIGraphicsGetCurrentContext() else { return } 

redView.layer.render(in: context) 
+0

로 변경되었습니다. 고마워요! –

관련 문제