У меня есть снимок всего экрана, screenshot
, генерируется с помощью следующих действий:Swift: Обрезка Скриншот
let layer = UIApplication.sharedApplication().keyWindow!.layer
let scale = UIScreen.mainScreen().scale
UIGraphicsBeginImageContextWithOptions(layer.frame.size, false, scale);
layer.renderInContext(UIGraphicsGetCurrentContext())
let screenshot = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
Я хотел бы, чтобы обрезать его так, чтобы панель вкладок не включена, и я попытался используя следующий код:
let crop = CGRectMake(0, 0, //"start" at the upper-left corner
self.view.bounds.width, //include half the width of the whole screen
self.view.bounds.height + self.navigationController!.navigationBar.frame.height) //include the height of the navigationBar and the height of view
let cgImage = CGImageCreateWithImageInRect(screenshot.CGImage, crop)
let image: UIImage = UIImage(CGImage: cgImage)!
Этот код приводит к image
показывая лишь небольшую часть экрана, прямоугольник, начиная с верхнего левого угла экрана (0, 0), и расширение правый менее чем половину ширины экрана, затем вниз для менее чем га Высота экрана. Мне бы хотелось, чтобы он включил весь экран , за исключением области, занимаемой панелью вкладок. Есть ли такой способ обрезать его?
Работает отлично - спасибо; щедрость придет. – Randoms
Добро пожаловать :) – sahara108