У меня есть UIView canvas
, и я хотел бы сохранить его снимок экрана и его подвиды (которые представляют собой цветные фигуры) в фотопленке, когда я нажимаю UIBarButton shareBarButton
. Это работает на симуляторе, однако не создает изображение так, как мне нравится:
- В идеале я бы хотел, чтобы снимок выглядел (кроме без носителя, времени , & состояние батареи в верхней части экрана).
- Как на самом деле выглядит снимок в фотопленке.
Я хочу, чтобы снимок выглядел точно так, как он выглядит на экране iPhone. Таким образом, если часть фигуры выходит за пределы экрана, на снимке будет запечатлена только та часть фигуры, которая видна на экране. Я также хочу, чтобы снимок имел размер canvas
, который в основном соответствует размеру представления, за исключением немного меньшей высоты:
canvas = UIView(frame: CGRectMake(0, 0, view.bounds.height, view.bounds.height-toolbar.bounds.height))
Если бы кто-нибудь мог сказать, что я делаю неправильно при создании снимка, я был бы очень признателен!
Мой код:
func share(sender: UIBarButtonItem) {
let masterpiece = canvas.snapshotViewAfterScreenUpdates(true)
let image = snapshot(masterpiece)
UIImageWriteToSavedPhotosAlbum(image, nil, nil, nil)
}
func snapshot(masterpiece: UIView) -> UIImage{
UIGraphicsBeginImageContextWithOptions(masterpiece.bounds.size, false, UIScreen.mainScreen().scale)
masterpiece.drawViewHierarchyInRect(masterpiece.bounds, afterScreenUpdates: true)
let image = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
return image
}