Я получаю «снимок» UITextView как CGImage, но проблема в том, что содержимое UITextView очень длинное (около ~ 110k contentSize.height), и когда я визуализирую слой UITextView в контекст памяти использование становится ~ 130 МБ, что приводит к сбою приложения при запуске на устройстве.Как я могу получить только частичный прямоугольник из CALayer?
Вот код. viewref
- это экземпляр UITextView.
UIGraphicsBeginImageContext(self.viewref.contentSize);
CGContextRef ctx = UIGraphicsGetCurrentContext();
//render the text
CALayer *tLayer = self.viewref.layer;
[tLayer renderInContext:ctx];
//get the "snapshot"
CGImageRef imageRef = [UIGraphicsGetImageFromCurrentImageContext() CGImage];
UIGraphicsEndImageContext();
Итак, могу ли я визуализировать только частичный слой UITextView для контекста изображения?
CGContentClipToRect не найден ни в одном заголовках ... вы имели в виду CGContextClipToRect? – hfossli
Почему это необходимо для перевода? Сбрасывает ли CGContextClipToRect исходные значения на прямой? – hfossli
Да, я имел в виду CGContextClipToRect. Я не могу вспомнить (от 3 лет назад!), Почему я положил перевод, - возможно, это было частью попытки перевернуть координатное пространство, но если так, я забыл масштабировать на -1 по вертикали. Я вижу, что я также пропустил «verticalOffset + = verticalChunkHeight;» в конце цикла while. NB предостережение перед блоком кода! – hatfinch