Swiftui Обмен изображениями: скриншот не загружается при первой попытке обмена, но загружается впоследствииIOS

Программируем под IOS
Ответить Пред. темаСлед. тема
Anonymous
 Swiftui Обмен изображениями: скриншот не загружается при первой попытке обмена, но загружается впоследствии

Сообщение Anonymous »

У меня есть простая игра в пасьянсе, в которой я хочу поделиться скриншотом выигрышных рук через лист обмена. Я делаю штраф в сфере экрана, но когда я иду, чтобы поделиться (в основном тестирование через Gmail), первый раз, когда появляется лист для Gmail, изображение не прикреплено. Если я закрою сообщение Gmail и попробую еще раз, оно загружает изображение. Есть ли какая -то задержка, которую мне нужно учитывать в процессе рендеринга? Я прочитал кучу других потоков, в которых были части той же проблемы, с которой у меня есть, но ничего убедительного, и я не смог это исправить. ShareLink выглядит так, как будто это был бы хороший вариант, но я не могу заставить его работать, так как он каждый раз сбояет мой предварительный просмотр. Вот моя функция снимка (скриншот): < /p>

Код: Выделить всё

extension WinningHandView {
func snapshot(origin: CGPoint = .zero, size: CGSize = .zero) -> UIImage {
let controller = UIHostingController(rootView: self)
let view = controller.view

let targetSize = size == .zero ? controller.view.intrinsicContentSize : size
view?.backgroundColor = .clear
view?.bounds = CGRect(origin: origin, size: targetSize)

let renderer = UIGraphicsImageRenderer(size: targetSize)

return renderer.image { _ in
view?.drawHierarchy(in: controller.view.bounds, afterScreenUpdates: true)
}
}

}
< /code>
Вот кнопка, которую я использую для запуска листа обмена: < /p>
Button("Share", action: {
let image = self.snapshot()
//let sharingImage = Image(uiImage: image).renderingMode(.original)*/

let activityVC = UIActivityViewController(activityItems: [image], applicationActivities: nil)
let _: Void? = UIApplication.shared.connectedScenes.map({ $0 as? UIWindowScene }).compactMap({ $0 }).first?.windows.first?.rootViewController?.present(activityVC, animated: true, completion: nil)})
Это похоже на какое -то условие расы, необходимое; Если бы это было так, как бы я это реализовал? Я работал со Swiftui только пару недель, так что все же очень много изучать веревки.

Подробнее здесь: https://stackoverflow.com/questions/795 ... mpt-but-lo
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «IOS»