симуляторе скриншот не вьюпорта телефона, а всего экрана от начала и до конца? Гуглеж не помог..
cmd+shift+4 не подходит?)
Оно же не скролит экран в симуляторе от начала до конца, может захватить только отображаемый фрагмент
А, неправильно вопрос понял. Когда-то делал
Сделай снапшот вьюхи и сохрани
Вот об этом речь? https://developer.apple.com/documentation/uikit/uiview/1622531-snapshotview Не совсем понимаю, как это поможет?
Да, только не этот, а тот который рисует в контекст.
Но ты это, учти, если у тебя там коллекция скажем, то очевидно, чего ещё не существует соответственно и рендериться не будет. Тебе придётся увеличить сам размер коллекции до размеров её contentSize.
Спасибо за идею, попробовал, все равно все ограничивается размерами вьюпорта
А ты прочёл что я написал выше?
Да, конечно
Тогда ты что-то делаешь не так
Я беру bounds.size
А bounds равен размеру экрана? Тогда чего ты ожидаешь?
В смысле таки да, что-то делаю не так, но frame.size тот же результат давал
Ты лучше скажи, ты хочешь весь контент какой-то таблицы/коллекции заскринить?
Да не при чем тут коллекция, давай считать что ее вообще нет, просто 145 лэйблов скажем
Я скину мальнький пример минут через 10.
https://pastebin.com/V0JiTvcx render(in:) работает без ограничений по размеру у drawHierarchy(in:afterScreenUpdates:)
Ну дык условных 145 лейблов же наверняка на чем-то сабклассящем UIScrollView лежат, размер тебе надо не из bounds/frame.size брать, а из contentSize.
Если бы ты почитал выше, я уже об этом писал, но человек решил начать с более простого )
Сорян, по диагонали пробежался
Так и у тебя bounds.size
А ты посмотри, как я задал размер стаквью
Я хочу до тебя донести, что система рендерит лишь то, что содержится в рамке вьюхи. Если размер контента у тебя выходит за пределы рамки, то тебе нужно увеличить рамку до размеров контента.
Я это понимаю, просто думал что-то универсальное сделать в виде экстеншена для вьюх, раз уж просто скриншот сделать не получается
Универсального решения тут просто не может быть. Можно попытаться постротиь по следующему принципу, пробежать вглубь по всей иерархии текущей вьюхи, для каждой сабвьюхи/или сабвью сабвьюхи берём её рамку и конвертируем в координты основной вьюхи и по этим же координатам отрисовываем. Общий размер тоже задаётся как максимум таких пар координатам с размером. С таблицей и коллекций такой подход не выйдет, как и для всех вьюх, чей контент просто не выставляется по логике в бесконечной области bounds. Ровно как с примером выше, где стаквью просто не станет располагать правильно оставшиеся лейблы.
https://github.com/TelegramMessenger/Telegram-iOS/blob/674999eed85092b1fdc0badee6b20be8f0c08764/submodules/Display/Source/UIKitUtils.swift#L680 только тебе их напрямую отрисовывать в контекст. Но это всё равно не сильвер буллет.
Обсуждают сегодня