Я нашел множество примеров конвертации UIView в UIImage, и они отлично работают после того, как представление было выложено и т. Д. Даже в моем контроллере представления с большим количеством строк, некоторые из которых являются чистыми, но отображаются на экране, я могусделать преобразование.К сожалению, для некоторых представлений, которые находятся слишком далеко внизу таблицы (и, следовательно, еще не «прорисованы»), выполнение преобразования приводит к пустому UIImage.
Я пытался вызвать setNeedsDisplay и layoutIfNeeded, но они не работают.Я даже пытался автоматически прокручивать таблицу, но, возможно, я не делаю так (используя потоки), который гарантирует, что прокрутка произойдет в первую очередь, что позволит обновить представления до преобразования.Я подозреваю, что это не может быть сделано, потому что я нашел различные вопросы, задающие это, и ни один не нашел решение.Или же я могу просто перерисовать весь мой вид в UIImage, не требуя UIView?
С веб-сайта Пола Хадсона
Используя любой UIView, который не отображается на экране (скажем, строка вUITableview внизу экрана внизу.
let renderer = UIGraphicsImageRenderer(size: view.bounds.size)
let image = renderer.image { ctx in
view.drawHierarchy(in: view.bounds, afterScreenUpdates: true)
}