Я собираюсь ответить на ваш вопрос в двух частях.
WebKit против SFSafariViewController
Если вы хотите иметь настраиваемую панель инструментов с кнопкой для снятия скриншотов, я бы использовал UIViewController
с настраиваемой панелью вкладок, куда вы можете добавлять любые кнопки, которые вы хотите, тогда я бы также включил представление WebKit
в контроллер представления.Это должно быть довольно просто.
Сохранение скриншота в Core Data
Судя по звукам, вы можете получить скриншот не так, как вы хотите, чтобы начальная и конечная картинкиконтекст выглядит следующим образом:
let layer = UIApplication.shared.keyWindow!.layer
let scale = UIScreen.main.scale
UIGraphicsBeginImageContextWithOptions(layer.frame.size, false, scale)
layer.render(in: UIGraphicsGetCurrentContext()!)
let screenshot = UIGraphicsGetImageFromCurrentImageContext()
Теперь у вас есть скриншот, сохраненный как UIImage?
в вашей переменной screenshot
.Затем вы должны преобразовать это в данные с помощью:
let data = UIImagePNGRepresentation(screenshot!)
, который должен дать вам представление данных вашего изображения, которое вы затем сможете сохранить в Core Data.