UIActivityViewController аварийно завершает работу при совместном редактировании UIImage, который я редактировал, но работает с UIImage (по имени :) - PullRequest
0 голосов
/ 04 сентября 2018

Я использую следующий код для объединения двух изображений в одно

func combineImages() {

    //reset tent image
    self.tempImageView.image = self.selectedTent

    let size = CGSize(width: self.tempImageView.image!.size.width, height: self.tentImageView.image!.size.height)
    UIGraphicsBeginImageContext(size)

    let areaSize = CGRect(x: 0, y: 0, width: size.width, height: size.height)
    if let selected = self.selectedBackground {
        selected.scaleImageToSize(newSize: CGSize(width: areaSize.width, height: areaSize.height)).draw(in: areaSize)
    }

    self.tempImageView.image!.draw(in: areaSize, blendMode: CGBlendMode.normal, alpha: 0.8)

    self.combinedImage = UIGraphicsGetImageFromCurrentImageContext()!
    UIGraphicsEndImageContext()

    self.tempImageView.image = combinedImage
}

Если я попытаюсь поделиться этим комбинированным изображением с помощью UIAcitivityViewController, всплывающий лист откроется, но когда я выбираю приложение (например, Slack), предварительный просмотр изображения загружается некоторое время, изображение не отображается в предварительном просмотре, и через несколько секунд всплывающее окно общего доступа просто закрывается. Вот код, который я использую, чтобы поделиться

if let imageToShare = self.combinedImage {

        let imageToShareArray = [ imageToShare ]
        let activityViewController = UIActivityViewController(activityItems: imageToShareArray, applicationActivities: nil)
        activityViewController.popoverPresentationController?.sourceView = view

        // present the view controller
        self.present(activityViewController, animated: true, completion: nil)
    }

Если я создаю изображение с использованием UIImage (named :) вместо моего объекта комбинированного изображения, все работает нормально, и я могу поделиться им.

Когда я использую нужное изображение, я также вижу эту ошибку в окне вывода в XCode

2018-09-04 10:45:28.219428-0600 MyApp[7393:4245932] [Common] _BSMachError: port 13817; (os/kern) invalid capability (0x14) "Unable to insert COPY_SEND"

Любая помощь будет оценена.

1 Ответ

0 голосов
/ 04 сентября 2018

попробуйте сначала преобразовать ваше новое изображение в данные:

if let imageToShare = self.combinedImage, let dataImage = UIImageJPEGRepresentation(imageToShare, 0.8) {

   let imageToShareArray = [dataImage]
   let activityViewController = UIActivityViewController(activityItems: imageToShareArray, applicationActivities: nil)
   activityViewController.popoverPresentationController?.sourceView = view

   // present the view controller
   self.present(activityViewController, animated: true, completion: nil)
}
...