Как добавить изображение пользовательского интерфейса в контекст, чтобы оно было включено в скриншот?

У меня есть эта функция, которая делает снимок экрана в imageView

@IBAction func screenShotMethod(sender: UIButton) {
        //Create the UIImage

        UIGraphicsBeginImageContextWithOptions(imageView.frame.size, false, 0.0)   

        imageView.layer.renderInContext(UIGraphicsGetCurrentContext())           
        //I think here is where I could add the other imageView if I could name it properly. 

        let image = UIGraphicsGetImageFromCurrentImageContext()


    }

Я думаю, что мне нужно что-то вроде:

    UIButton(named:"monkey.png").layer.renderInContext(UIGraphicsGetCurrentContext())

сразу после добавления imageView к контексту, но я не уверен, как это сделать правильно. Как вы можете видеть, я пытаюсь добавить imageView с именем monkey.png, который существует на main.storyboard.

Какие-либо предложения?

1 ответ

Решение

Я не уверен, в чем проблема, почему ваш подход не сработал для вас, но добавление следующей строки вместо комментария, который вы поместили в код ("Я думаю, что здесь, где..."), делает то, что Я понимаю, что вы пытаетесь достичь:

UIImageView(image: UIImage(named: "monkey.png")).layer.renderInContext(UIGraphicsGetCurrentContext())

так что весь ваш метод будет выглядеть так:

@IBAction func screenShotMethod(sender: UIButton) {
    UIGraphicsBeginImageContextWithOptions(imageView.frame.size, false, 0.0)
    imageView.layer.renderInContext(UIGraphicsGetCurrentContext())           
    UIImageView(image: UIImage(named: "monkey.png")).layer.renderInContext(UIGraphicsGetCurrentContext())        
    let image = UIGraphicsGetImageFromCurrentImageContext()
    // Do something with the image ;)
}
Другие вопросы по тегам