У меня есть приложение, которое позволяет пользователю добавлять фотографию к своей фотографии и сохранять ее как приложение для наклеек. Я настроил его, чтобы сделать снимок экрана прямо сейчас, но проблема, с которой я столкнулся, заключается в том, что он делает снимок всего UIView
, поэтому на последней сохраненной фотографии в прокрутка камеры.
Как сделать снимок экрана, который вырезает пустое пространство из приложения?
Вот что у меня сейчас...
UIGraphicsBeginImageContextWithOptions(UIScreen.mainScreen().bounds.size, false, 0);
self.view.drawViewHierarchyInRect(view.bounds, afterScreenUpdates: true)
var image: UIImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
UIImageWriteToSavedPhotosAlbum(image, nil, nil, nil)
self.savedImageAlert()
self.dismissViewControllerAnimated(true, completion: nil)
Я поэкспериментировал с созданием границ, равных UIImageview
, называемых userImageView, но это исказило мою фотографию и по-прежнему имело много белого пространства только вверху фотографии, а не сверху и снизу.
Я новичок в Swift, и мне трудно работать с CG/UIGraphics, поэтому любая помощь будет очень признательна... Я потратил часы на изучение этого и все больше и больше запутывался!
ПРИМЕЧАНИЕ/ОБНОВЛЕНИЕ. Я изменил свой код на следующее:
// Я определил myView вне обеих функций, чтобы можно было ссылаться на myView как в функции, так и в функции IBAction
let myView = UIView()
func imageWithView(myView:UIView)->UIImage{
UIGraphicsBeginImageContextWithOptions(view.bounds.size, false, 0.0)
view.layer.renderInContext(UIGraphicsGetCurrentContext()!)
let image = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
return image
}
@IBAction func mergeAndSaveImage(sender: AnyObject) {
let newImage = imageWithView(myView)
UIImageWriteToSavedPhotosAlbum(newImage, nil, nil, nil)
self.savedImageAlert()
self.dismissViewControllerAnimated(true, completion: nil)
В своей раскадровке я создал новый UIView
, переименовал его и перетащил два моих UIImageViews
под ним в структуру документа.
Я до сих пор не могу заставить это работать, когда я сохраняю изображение, он сохраняет весь экран с пробелами и UIbuttons
.
Во-первых, я не хочу, чтобы изображение с записной книжкой Детройта было таким маленьким, на раскадровке оно намного больше, но когда я запускаю приложение, оно становится маленьким в uiview.
Во-вторых, код просто сохраняет изображение всего экрана... Я хочу, чтобы UIView, содержащий два изображения ui, сохранялся как изображение.
Вот что он сохраняет как ....