Быстрое рисование изображения актива на изображение - PullRequest
0 голосов
/ 07 июня 2018

Я пытаюсь нарисовать актив изображения под названием GreyCircle (маленький серый кружок, 25x25) на изображении в Swift 4, но я не могу понять, как это правильно.Кстати, это функция жестов, то есть я пытаюсь нарисовать серый круг, где пользователь нажимает на фотографию.displayedImage содержит текущее отображаемое изображение.

Код:

self.touchPoint = gestureRecognizer.location(in: self.view)
let greyCircle = UIImage(named: "GreyCircle")   

UIGraphicsBeginImageContextWithOptions(displayedImage.size, false, 0.0)
displayedImage.draw(in: CGRect(x:0, y:0, width:displayedImage.size.width, height: displayedImage.size.height))
greyCircle.draw(in: CGRect(x:touchPoint.x, y:touchPoint.y, width:displayedImage.size.width, height: displayedImage.size.height))
let newImag = UIGraphicsGetImageFromCurrentImageContext()

UIGraphicsEndImageContext()
displayedImage = newImag

Строка greyCircle.draw неверна, но это моя последняя попытка.Я уверен, что мне не хватает чего-то с головой.

Ответы [ 2 ]

0 голосов
/ 07 июня 2018

Вы хотите перевести точку касания в границы изображения.Затем при рисовании круга используйте размер круга, а не размер изображения.

let touchPoint = gestureRecognizer.location(in: displayedImage)
let greyCircle = UIImage(named: "GreyCircle")   

UIGraphicsBeginImageContextWithOptions(displayedImage.size, false, 0.0)
displayedImage.draw(in: CGRect(x:0, y:0, width:displayedImage.size.width, height: displayedImage.size.height))
greyCircle.draw(in: CGRect(x:touchPoint.x, y:touchPoint.y, width: greyCircle.size.width, height: greyCircle.size.height))
let newImag = UIGraphicsGetImageFromCurrentImageContext()

UIGraphicsEndImageContext()
displayedImage = newImag
0 голосов
/ 07 июня 2018

Я думаю, что сначала вам нужно добавить greyCircle в imageView и добавить это изображение в главном представлении. А затем после того, как вы взяли текущий контекст основного представления ... подумайте, может это вам поможет help

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...