Почему скриншот растягивается? - PullRequest
0 голосов
/ 30 августа 2018

Я использую UIGraphicsBeginImageContextWithOptions с пользовательским CGSize Я не знаю, почему я получаю растянутое изображение?

UIGraphicsBeginImageContextWithOptions(CGSize(width: UIScreen.main.bounds.width, height: 200) , false, 0)
let cellRect = CGRect(x: 0, y: 0, width: UIScreen.main.bounds.width, height: 200)
view.drawHierarchy(in: cellRect, afterScreenUpdates: true)
let wholeImage = UIGraphicsGetImageFromCurrentImageContext()//stretched image
UIGraphicsEndImageContext()

1 Ответ

0 голосов
/ 30 августа 2018

Вы устанавливаете контекст изображения на высоту 200, но затем вы делаете то же самое для прямоугольника ячейки, что означает, что он сделает весь скриншот и поместит его в кадр (screenWidth, 200). Вам нужно сохранить контекст 200, а затем просто использовать view.bounds для cellRect, и вы должны получить верхний 200 px представления, если это то, что вам нужно.

UIGraphicsBeginImageContextWithOptions(CGSize(width: UIScreen.main.bounds.width, height: 200) , false, 0)
let cellRect = self.view.bounds
self.view.drawHierarchy(in: cellRect, afterScreenUpdates: true)
let wholeImage = UIGraphicsGetImageFromCurrentImageContext()//stretched image
UIGraphicsEndImageContext()
...